从Ajax返回数据会导致奇怪的对象
我知道这个问题可能被问过一千次,但我似乎无法找到答案。 我希望result
是从ajax-request返回的数据,它应该是一个json-data数组( console.log(data)
的结果)。
var result = $.ajax({
type: 'GET',
url: dataPath,
dataType: 'json',
success: function(data) {
console.log(data)
},
error: function(){
//alert("damn");
},
data: {},
aync: false
});
console.log(result);
但是, console.log(result);
会返回一些奇怪的对象,我不知道该如何处理。 为什么不是result
= data
?
错字。
改变这个:
aync: false
至:
async: false
而ajax
方法仍然返回执行请求的jqXHR对象,而不是结果。 在success
调用中使用data
参数并将其存储在某个地方。
首先从代码中删除aync: false
。 它应该被拼写为async: false
但你不需要它来实现你的目标,它实际上会阻止整个浏览器的用户界面,导致糟糕的用户体验。 请记住,AJAX中的“A”表示异步 。
$.ajax()
调用的结果是一个与您的数据不同的承诺 ,但它对于获取数据仍然很有用。 你只需要以某种方式使用它。
尝试改变:
console.log(result);
至:
result.done(function (data) {
console.log(data);
});
要么:
result.done(function (data) {
console.dir(data);
});
甚至这可能会奏效 - 未经测试:
result.done(console.dir);
看到这个答案更好的解释。
初始化success
函数内的result
。
var result;
$.ajax({
type: 'GET',
url: dataPath,
dataType: 'json',
success: function(data) {
result = data;
console.log(data)
},
error: function(){
//alert("damn");
},
data: {},
async: false
});
console.log(result);
链接地址: http://www.djcxy.com/p/55391.html
上一篇: Returning data from ajax results in strange object
下一篇: jQuery Deferred not calling the resolve/done callbacks in order