我有一些javascript代码,使ajax调用,得到一个var,然后尝试使用var稍后在脚本中。问题是由于ajax调用,其余的代码在它有var之前就运行了。
var quote_request_id;
$.ajax({
type: "POST",
url: rate_url + '/99/1',
data: datastring,
dataType: "html"
}).done( function(data,status,xhr) {
quote_request_id = xhr.getResponseHeader('X-QuoteRequest-Id');
});
然后我有其他ajax调用使用quote_request_id var,但它没有被设置。如果我只是在上面的代码块之后添加一个警告,它就可以工作了。我意识到这是因为ajax调用的异步行为。只需要找出一种方法来获得var并在其余的代码中使用它。
那么你不需要AJAX
,你需要的是同步通信的SJAX
。将async: false
添加到ajax对象中。但是,我建议您从第一个方法的success
方法或done
启动后续的ajax调用,以便您无论如何都有变量。