Can';在ajax中无法进行比较

Can';在ajax中无法进行比较,ajax,Ajax,事件虽然返回“OK”(之前使用alert进行检查),但无论它从未显示alert(“YEA”),为什么会这样?数据似乎无法比较,这是因为(正确地)使用了异步AJAX调用。当您调用check_abc(a,b,c)时,它会立即返回一个未定义的值,因为服务器的响应将在稍后出现 将调用代码简化为: //From other function var check = check_abc(a,b,c); alert (check); function check_abc(a,b,c) { $.a

事件虽然返回“OK”(之前使用alert进行检查),但无论它从未显示alert(“YEA”),为什么会这样?数据似乎无法比较,这是因为(正确地)使用了异步AJAX调用。当您调用
check_abc(a,b,c)
时,它会立即返回一个未定义的值,因为服务器的响应将在稍后出现

将调用代码简化为:

//From other function
var check = check_abc(a,b,c);
alert (check);


function check_abc(a,b,c)
{

    $.ajax({
    type: "POST",

    url: "abc.php",

    data: { a: a, 
            b: b,
            c:  c
        },

    success:function(data) { //alert to get the data and make sure it was return ok.
        if(data == "OK")
        {
            window.alert("YEA");
            goOn();
        }
        else
        {
            window.alert("Testing");
            noGood();
        }
    }
});

}
success
函数内部,显示对话框(当您收到服务器的响应时会出现该对话框):


AJAX是异步的,这就是为什么您无法获得价值

像这样试试

success:function(data) { //alert to get the data and make sure it was return ok.
    var displayBoolean = date === "OK";
    alert(displayBoolean);
}

不要从
success
函数返回任何内容(因为正如您所说,它是异步的)。成功部分调用了catchVal函数,它在响应来自serverRight之后调用,但您仍然无法从
success
函数返回任何内容。它不起作用。。我正试图用另一种方法,但又卡住了。请帮我检查一下(我已经更新了问题)。谢谢,它不起作用了。。我正试图用另一种方法,但又卡住了。请帮我检查一下(我已经更新了问题)。感谢您在success方法的下一行设置console.log(data)。您的data方法不会返回任何值,即why data==“OK”返回false,代码转到else方法。首先检查你的服务器响应,为什么你不能正常运行或者做其他事情。。控制台确实恢复正常。忘了refresh@ManProgrammer它确实返回了,但无法比较。为什么会这样?您的预期输出是什么请告诉我们?预期输出是弹出框显示“YEA”,当数据返回“OK”时,否则显示“Testing”,您可以粘贴您的console.log输出,放入成功方法中。
success:function(data) { //alert to get the data and make sure it was return ok.
    var displayBoolean = date === "OK";
    alert(displayBoolean);
}
success:function(data) { //alert to get the data and make sure it was return ok.
        if(data == "OK")
            {catchVal("OK");return true; }   //tried check == true; still cannot
        else
            {catchVal("Error");return false;}
    }

function catchVal(val){
alert(val);
}
$.ajax({
    type: "POST",

    dataType: "text",
    url: "abc.php",

    data: { a: a, 
            b: b,
            c:  c
        },

    success:function(data) {

        var result = $.trim(data);

        if(result == "OK")
        {
            window.alert("YEA");
            goOn();
    }
       else
       {
           window.alert("Testing");
           noGood();
       }