最近在做项目的时候遇到一个小bug,大致流程是:
1.通过ajax发送请求,去执行A操作
2.请求成功后,在回调函数里去再次发送请求去执行B操作
代码如下:
function A(){
$.ajax({
type:'get',
dataType:'json',
url:url,
success:function(data){
B();
reload();
}
});
}
function B(){
$.ajax({
type:'get',
dataType:'json',
url:url,
success:function(data){
}
});
}
结果在请求的时候,报了provisional headers are shown 的错。
根据网上的资料,有几种可能性如下:
1.跨域请求被拦截
2.请求被浏览器插件拦截
3.响应超时
4.使用缓存,并未发送请求
经过分析,第1点和第4点首先被排除。在controller层打了断点和日志,第3点也被排除,然后更换了不同的浏览器测试也基本排除了第2点。
继续查阅资料,发现问题出在了在A函数的回调方法中执行B方法,B方法下面还有一个reload方法,删除即可