在ajax请求(jQuery)之后存储JSON时出错

时间:2015-09-22 13:18:54

标签: javascript jquery json ajax

我对JavaScript / jQuery很陌生,所以请耐心等待。我一直试图在ajax请求之后存储生成的JSON,所以我可以在我的程序中稍后使用它的登录信息。我得到一个错误,说明"数据"未定义。这是有问题的代码:

function LOGIN(){
    $.ajax({
        url: 'https://.......&JSONP=Data&.........',
        success: function Success(){
            var SessionData = Data();
            (FunctionThatParsesJSON);
            }
        })
}

我已经手动检查了网址,并且工作正常(包括)包含在"数据"功能。从我在网上找到的,这可能与ajax异步有关。任何人都可以建议一种存储JSON的方法,以便我以后可以使用它吗?

5 个答案:

答案 0 :(得分:1)

尝试以下内容;

function LOGIN(){
    $.ajax({
        url: 'https://.......&JSONP=Data&.........',
        success: function Success(data){
            functionToProcessData(data)
        })
}

进行ajax调用时,可以通过为函数分配参数来处理给出的响应。在上面的例子中,我已经将'data'参数传递给success函数,允许我在其他函数中使用它(如'functionToProcessData(data)'所示。

答案 1 :(得分:0)

来自ajax调用的响应在成功处理程序中捕获,在本例中为“data”。 检查以下代码:

    success: function(data){
        var SessionData = data.VariableName;  
          // Here goes the remaining code.
        }
    })

答案 2 :(得分:0)

由于人们会询问解释,因此几句话:

当我们执行$ .ajax时,javascript会对URL进行异步ajax调用以从服务器获取数据。我们可以为$ .ajax的“success”属性提供回调函数。当您的ajax请求成功完成时,它将调用已注册的成功回调函数。此函数的第一个参数是来自服务器的数据,作为对您的请求的响应。

success: function ( data ) {
    console.log( data );
},

希望这有帮助。

在内部,一切都使用承诺。您可以在承诺上探索更多信息:     https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise

答案 3 :(得分:0)

显然您使用的是JSONP,因此您的代码应如下所示:

$.ajax({
    url: 'https://.......&JSONP=Data&.........',
    dataType:"jsonp",
    success: function (data){
        (no need to parse data);
    }
});

另一种选择:

$.ajax({
    url: 'https://.......&JSONP=Data&.........',
    dataType:"jsonp"
})
.done(function (data){
    (no need to parse data);
});

See the documentation and examples了解详情。

答案 4 :(得分:-1)

success: function (data, textStatus, jqXHR){

这些是传递给success函数的参数。数据将是json返回的。