为什么我的Ajax请求的结果为空,尽管请求通过了确定?

时间:2016-01-14 09:33:38

标签: javascript jquery ajax

我的提醒显示“未定义”,其中包含以下代码:

var nonce = (function () {
$.ajax({
url: site_url + '/api/get_nonce/?controller=user&method=register&apikey=XXX&callback=?',
type: "GET",
dataType: 'json',
success: function(data){

nonce = data.nonce;
    }
});
return nonce;
})(); 

alert(nonce);

JSON是:

?({"status":"ok","controller":"user","method":"register","nonce":"XXX"})

我做错了什么?

1 个答案:

答案 0 :(得分:2)

Ajax调用是asynchronous。在你正在进行return nonce;时,结果还没有到达 - 或者至少不能保证。

您需要在Ajax调用的alert(nonce);处理程序中放置success以及您想要对结果执行的任何其他操作。

从长远来看,你还需要一个error回调来处理出错的地方。