AJAX:将PHP数据存储在Javascript变量中


AJAX: Store PHP data in a Javascript variable

如标题所述,我有一个ajax调用。关于success函数,我想将返回的数据存储到一个变量中,以便在我的javascript中使用。randNum.php只是每2秒返回一个随机数,我想在脚本中的其他函数中使用这个数字。如何在javascript中使用从php文件发回的数据?我知道有更合乎逻辑的方法可以做到这一点,但我想知道如何以这种方式完成任务。

    var result;
    var interval = 2000;
    function myCall() {
        var request = $.ajax({
            url: "randNum.php",
            type: "GET",            
            dataType: "html",
            success:function (msg) {
                result = msg;  //Not working as I intend
                setTimeout(myCall, interval);
            }
        });
    }
function(){
    do something with result;
}

在函数外部声明一个全局变量,并在ajax响应之后将响应变量分配给它。

var results;
function TestJSONP(){
    $.ajax({
        url: "randNum.php",
        jsonp: "callback",
        dataType: "jsonp",
        success: function (response) {
            console.log(response);
            results = response;
        }
    });
}

您可能不需要指定dataType,而是使用jqXHR.responseText来获取原始响应。类似的东西

function myCall() {
    var request = $.ajax({
        url: "randNum.php",
        type: "GET",            
        success:function (data, textStatus, jqXHR) {
            result = jqXHR.responseText;  
            setTimeout(myCall, interval);
        }
    });
}

当您设置了dataType,并且响应不是那种类型时,那么ajax没有成功,将调用error回调。