我对JavaScript / jQuery很陌生,所以请耐心等待。我一直试图在ajax请求之后存储生成的JSON,所以我可以在我的程序中稍后使用它的登录信息。我得到一个错误,说明"数据"未定义。这是有问题的代码:
function LOGIN(){
$.ajax({
url: 'https://.......&JSONP=Data&.........',
success: function Success(){
var SessionData = Data();
(FunctionThatParsesJSON);
}
})
}
我已经手动检查了网址,并且工作正常(包括)包含在"数据"功能。从我在网上找到的,这可能与ajax异步有关。任何人都可以建议一种存储JSON的方法,以便我以后可以使用它吗?
答案 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);
});
答案 4 :(得分:-1)
success: function (data, textStatus, jqXHR){
这些是传递给success函数的参数。数据将是json返回的。