doudundian9558 2014-08-08 21:37
浏览 33
已采纳

AJAX响应中的空白

I'm getting white space in my console log from my response with AJAX. The responds I need to get is:"[1,4,6,12]" instead I'm getting: "[1,4,6,12] ". I've tried everything... Deleting every PHP close tag, using the trim function(in PHP and JS)...

My PHP code(part not all):

$errors = array();

if (empty($stringUsername)) {
    $errors[] = 0;
    $bolean = true;
}
if (strlen($stringUsername) < 3 || strlen($stringUsername) > 16) {
    $errors[] = 1;
    $bolean = true;
}
if (!ctype_alnum($stringUsername)) {
    $errors[] = 2;
    $bolean = true;
}

if (empty($stringPassword)) {
    $errors[] = 3;
    $bolean = true;
}
if (strlen($stringPassword) < 6 || strlen($stringPassword) > 16) {
    $errors[] = 4;
    $bolean = true;
}

if (empty($stringPassword2)) {
    $errors[] = 5;
    $bolean = true;
}
if ($stringPassword != $stringPassword2) {
    $errors[] = 6;
    $bolean = true;
}

if (empty($stringEmail)) {
    $errors[] = 7;
    $bolean = true;
}
if (!filter_var($stringEmail, FILTER_VALIDATE_EMAIL)) {
    $errors[] = 8;
    $bolean = true;
}

if ($intMatchu != 0) {
    $errors[] = 9;
    $bolean = true;
}
if ($intMatchu != 0) {
    $errors[] = 10;
    $bolean = true;
}

if (empty($stringTerms)) {
    $errors[] = 11;
    $bolean = true;
}
if ($stringTerms == 'avok') {
    $errors[] = 12;
    $bolean = true;
}

if ($bolean == false) {
    $errors[] = 100;
}
echo json_encode($errors);

My JS/AJAX part(not all):

if (username.val() != '' && password.val() != '' && password2.val() != '' && email.val() != '' && terms.val != '') {
    var UrlToPass = 'action=aanmelden&username=' + username.val() + '&password=' + password.val() + '&password2=' + password2.val() + '&email=' + email.val() + '&av=' + terms.val();

    $.ajax({
        type: 'POST',
        data: UrlToPass,
        url: '/outgame/register.php',
        success: function (responseText) {
            if (responseText == 0) {
                $.notify('U hebt geen gebruikersnaam opgegeven!', 'error');
            } else if (responseText == 1) {
                $.notify('Uw gebruikersnaam moet meer dan 3 en minder dan 16 karakters bevatten!', 'error');
            } else if (responseText == 2) {
                $.notify('Uw gebruikersnaam bevat ongeldige tekens!', 'error');
            } else if (responseText == 3) {
                $.notify('U hebt geen wachtwoord opgegeven!', 'error');
            } else if (responseText == 4) {
                $.notify('Uw wachtwoord moet meer dan 6 en minder dan 16 karakters bevatten!', 'error');
            } else if (responseText == 5) {
                $.notify('U hebt geen tweede wachtwoord opgegeven!', 'error');
            } else if (responseText == 6) {
                $.notify('De wachtwoorden komen niet met elkaar overeen!', 'error');
            } else if (responseText == 7) {
                $.notify('U hebt geen mail adres opgegeven!', 'error');
            } else if (responseText == 8) {
                $.notify('Uw mail adres is niet geldig!', 'error');
            } else if (responseText == 9) {
                $.notify('Uw gebruikersnaam is al ingebruik!', 'error');
            } else if (responseText == 10) {
                $.notify('Er is al een account aagemaakt met dit email adres!', 'error');
            } else if (responseText == 11) {
                $.notify('U hebt onze AV niet geaccepteerd!', 'error');
            } else if (responseText == 12) {
                $.notify('Uw invoer voor onze AV is ongeldig!', 'error');
            } else if (responseText == 100) {
                $.notify('U bent succesvol geregistreerd', 'success');
            } else {
                alert('error!');
            }
            console.log(responseText);
        }

Thank you in advance! I'm sorry for my grammar or spelling mistakes, English isn't my mother tongue :-)

  • 写回答

1条回答 默认 最新

  • douqiu1604 2014-08-08 21:50
    关注

    You're echoing a JSON Encoded Array, then attempting to compare it to integer values. That's never going to work. Response is a String when you use $.ajax so you need to parse it into a JSON Value via something like this:

    $.parseJSON("[1,2,3,4] ")  // Returns [1, 2, 3, 4]
    

    Once you have a valid Array in JavaScript you want to see if your error codes are in that array, something like this:

    [1, 2, 3, 4].indexOf(3) // returns 2
    

    While an error that was not present would look like this:

    [1, 2, 3, 4].indexOf(5) // returns -1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办