我正在对服务器进行 ajax 调用,该调用返回一些我存储在 localStorage 项中的数据(无需解释原因,但需要像那样)。
然后我需要在第一个 ajax 调用之后的后续 ajax 调用中恢复该 localStorage 项。
我的问题:由于是异步的,第二个调用在设置变量之前开始,所以我得到了 null。
我尝试了“when.done”、“when.then”,在第一个成功时调用第二个......但似乎没有任何效果。
最佳答案
顺序 Ajax 调用。
在您的情况下,最好的解决方案可能是按顺序使用 ajax 调用。
编辑:我现在看到了jquery标签..这段代码是纯javascript..并且适用于所有现代浏览器,包括ie10和ios/android。它被称为xhr2。但当您使用 localStorage 时,这应该不是问题。
function ajax(a,b,c){ // Url, Callback, just a placeholder
c=new XMLHttpRequest;
c.open('GET',a);
c.onload=b;
c.send()
}
function store(array){
window.localStorage['data']=JSON.stringify(array)
}
//***************************************************************
function firstCheck(){
var call1data=JSON.parse(this.response);
store(call1data);
// get what you need
ajax('url',secondCheck)
}
function secondCheck(){
var
call2data=JSON.parse(this.response),
call1data=JSON.parse(window.localStorage['data']);
// whatever...
}
ajax('url',firstCheck);
现在,如果你更具体......我可以详细说明代码。
<小时/>有关正在使用的 ajax 函数的更多信息。还有一个带有帖子的示例。
https://stackoverflow.com/a/18309057/2450730
如果您有任何问题,请提出。
关于javascript - 一系列需要彼此结果的 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438087/