需要在代码继续之前由Ajax返回var



我有一些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调用,以便您无论如何都有变量。

最新更新