我想分配一个全局变量,从AJAX请求中检索的JSON数据。这是我的代码:
var ajaxData = "blabla";
$.ajax({
url: "url.php",
dataType: "json",
data: {
action: "searchResultsCallback",
termId: 5
},
success: function(data) {
ajaxData = data;
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
}
})
console.log(ajaxData);
现在,在$.ajax
函数中,我将ajaxData
从blabla
更改为data
的值。但是,相反,在控制台中,我得到的输出是:
布拉布拉
XHR已完成加载:GET “ url.php?action = searchResultsCallback& termId = 523 ”。
所以看起来浏览器首先打印ajaxData
的值,然后执行ajax请求。比那更多的。如果我将success
选项更改为:
success: function(data) {
ajaxData = data;
console.log(ajaxData);
},
然后我会从ajax请求中恢复数据!
布拉布拉
XHR已完成加载:GET “ url.php?action = searchResultsCallback& termId = 523 ”。
[对象,对象,对象,对象,对象]
为什么?我该如何解决?