Как мне установить ajax responseText равным строке? - PullRequest
0 голосов
/ 29 декабря 2018

У меня проблема с ajax.responseText в состоянии, когда он должен быть равен строке, которая передается из php echo из внешнего файла, дело в том, что строка, кажется, не равна ajax.responseText,

но если предупреждение (ajax.responseText), то это в точности строка "friend_request_sent"

function friendToggle(type,user,elem){
var conf = confirm("Press OK to confirm the '"+type+"' action for user <?php echo $u; ?>.");

if(conf != true){
    return false;
}   
_(elem).innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "friend_system.php");

ajax.onreadystatechange = function() {
    if(ajaxReturn(ajax) == true) {

        if(ajax.responseText=="friend_request_sent"){          
            _(elem).innerHTML = 'OK Friend Request Sent';       
        } else if(ajax.responseText == "unfriend_ok"){
            _(elem).innerHTML = '<button onclick="friendToggle(\'friend\',\'<?php echo $u; ?>\',\'friendBtn\')">Request As Friend</button>';       
        } else{        
            alert(ajax.responseText);
            _(elem).innerHTML = 'Try again later';
        }
    }
}
ajax.send("type="+type+"&user="+user);

}

теперь код, который я получаю из friend_system.php

 ...{ 
 echo"friend_request_sent";
 exit();
 }

и ajaxjs code

function ajaxObj( meth, url ) {
 var x = new XMLHttpRequest();
 x.open( meth, url, true );
 x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 return x;
}
function ajaxReturn(x){
   if(x.readyState == 4 && x.status == 200){
    return true;    
 }

} третье условие - это то, где оно борется, оно всегда уходит в другое, почему?

1 Ответ

0 голосов
/ 29 декабря 2018

Чтобы проверить ответ ajax для любой строки, лучше обрезать текст ответа

request.responseText.trim() === "string"
...