Javascript 在ajax请求(jQuery)后存储JSON时出错
我对JavaScript/jQuery还很陌生,所以请耐心等待。我一直在尝试在ajax请求后存储生成的JSON,以便稍后在程序中使用它的登录信息。我得到一个错误,说明“数据”未定义。下面是有问题的代码:Javascript 在ajax请求(jQuery)后存储JSON时出错,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我对JavaScript/jQuery还很陌生,所以请耐心等待。我一直在尝试在ajax请求后存储生成的JSON,以便稍后在程序中使用它的登录信息。我得到一个错误,说明“数据”未定义。下面是有问题的代码: function LOGIN(){ $.ajax({ url: 'https://.......&JSONP=Data&.........', success: function Success(){ var Ses
function LOGIN(){
$.ajax({
url: 'https://.......&JSONP=Data&.........',
success: function Success(){
var SessionData = Data();
(FunctionThatParsesJSON);
}
})
}
我已经手动检查了URL,它工作正常(包括)被包装在“数据”函数中。从我在网上发现的情况来看,这可能与ajax异步有关。有谁能建议一种存储JSON的方法,以便我以后使用它吗
success: function (data, textStatus, jqXHR){
这些是传递给success函数的参数。数据将是返回的json。来自ajax调用的响应在成功处理程序中捕获,在本例中为“数据”。 检查以下代码:
success: function(data){
var SessionData = data.VariableName;
// Here goes the remaining code.
}
})
尝试下面的方法
function LOGIN(){
$.ajax({
url: 'https://.......&JSONP=Data&.........',
success: function Success(data){
functionToProcessData(data)
})
}
在进行ajax调用时,可以通过为函数指定参数来处理给定的响应。在上面的例子中,我已将'data'参数传递给success函数,允许我在进一步的函数中使用它(如'functionToProcessData(data)'所示)。因为人们询问解释,因此只需几句话: 当我们使用$.ajax时,javascript会对URL进行异步ajax调用,以从服务器获取数据。我们可以为“success”提供回调函数$.ajax的属性。当您的ajax请求成功完成时,它将调用注册成功回调函数。此函数的第一个参数将是来自服务器的数据,作为对您请求的响应
success: function ( data ) {
console.log( data );
},
希望这有帮助
在内部,一切都使用承诺。您可以探索有关承诺的更多信息:
显然您正在使用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);
});
有关更多详细信息。那么,
数据定义在哪里?JQuery将响应传递给成功处理程序,至于与ajax异步有关的部分,这不是问题,因为正在调用成功回调。您可以更改success()函数获取一个参数,然后使用它代替Data();调用。您使用什么服务器语言?返回的数据应该是成功回调success:function(Data){}
代码可能有用,但解释更有用。OP说他是个初学者,所以向他们扔代码可能对他们没有多大帮助。对不起,下次我会解释得更好。