版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cccmercy/article/details/82666624
AJAX请求出现Provisional headers are shown原因及解决
原因
- 情景:在一个弹窗中发送AJAX请求做一些操作,然后关闭窗口,有一定几率出现
Provisional headers are shown
代码:
var index = parent.layer.getFrameIndex(window.name); // 发送请求 $.ajax({ type:'get', data: {date: new Date()}, dataType: 'json', url: '/MG/users', success: function(data){ console.log(data); } }); // 关闭窗口 parent.layer.close(index);
- 分析:由于网络有延迟,并且AJAX请求是异步的,这就导致AJAX请求发送成功,但还没有接收到响应的时候,就执行了关闭窗口的代码。关闭窗口之后的某一个时间,后端返回响应到前端,但是前端发送请求的页面关闭了,请求就一直处于
Provisional headers are shown
状态
解决
分析完原因后,解决起来很简单,只需要把关闭窗口的代码放到AJAX请求的success
回调中即可。