Jquery:如何发送一个ajax请求并为另一个调用保存JSON字符串
Jquery: how to send one ajax request and save the JSON string for another calls
在我的代码中,我有以下
var response = "";
function send_ajax(){
if(response == ""){
$.ajax({
url: url
type: 'POST',
dataType: "JSON",
success: function(data){
response = data;
}
});
}
}
我的问题是,在我的脚本中sendajx函数被调用了好几次,有时很多ajax调用都是一起发送的,而不需要这样做。因此,我正在寻找一种解决方案,如果一个ajax请求被发送,其他调用应该等待,直到该函数将数据保存在响应var中并使用它
我该怎么做?
如果将async标志设置为false,则在第一次调用完成之前不会进行其他调用。
$.ajax({
url: url
type: 'POST',
dataType: "JSON",
async: false,
success: function(data){
response = data;
}
});
if(response == ""){
response = 'waiting';
不会吧?
如果您希望$.ajax是异步的,但任何时候只允许一个ajax请求,则另一种解决方案。您可以查看$.ajaxStart和$.ajaxStop全局事件
var ajaxLock = false;
$.ajaxStart(function(){ajaxLock = true;});
$.ajaxStop(function(){ajaxLock = false;});
var ajaxRequest = function(url, data) {
if (!ajaxLock) {
$.ajax({
url: url
type: 'POST',
dataType: "JSON",
async: false,
success: function(data){
response = data;
}
});
}
}
相关文章:
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- Wicket在另一个请求之后触发请求
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- Nodejs一个请求阻塞另一个请求
- Hapi-js重定向到另一个带有额外请求数据的路由
- 嵌套另一个 Ajax 请求时,Ajax 响应处理中断
- 如何将请求响应传递给另一个请求
- 如何发送ajax请求并重定向到另一个页面
- 是否有任何事件在浏览器请求另一个资源(如图像)之前触发
- ajax请求将变量传递到另一个页面
- 是否可以在另一个后置请求中转发一个后置请求对象
- 如果用户发送另一个请求,请使用 .abort() 取消现有的 ajax 请求
- 服务器以 Status=304 响应一个浏览器的 GET 请求,以 200 响应另一个浏览器的 GET 请求
- 如何使用 angularjs 将$http请求返回的数据用于同一控制器中的另一个请求
- 来自一个页面的 Ajax 请求和另一个页面的响应
- 无法使用 AngularJS 从控制器将请求呈现给另一个 HTML
- AngularJS请求模型在另一个模型创建[NodeJS]之前
- AJAX 从服务器请求另一个 JavaScript 或函数
- 正在请求另一个函数中的函数响应
- 请求另一个域/服务器上的内容