我正在调用http post函数:
$http.post(myUrl, myData, { timeout: 2000 }).success() etc
当响应速度很快时,调用工作正常,但如果响应时间超过2秒,则angularjs代码崩溃!
我创建了一个在IE10,Chrome和Firefox上运行的单个html页面,并清楚地显示了IE9上的错误: http://www.apxproto.com/api/ngPost.htm(查看此内容而不是下面的plunker)
我检查了角度代码,当有超时时,它调用xhr.abort()。 xhr.onreadystatechange尝试通过调用xhr.getAllResponseHeaders()来获取头文件;这是因为xhr已经中止而失败的地方。
这是一个掠夺者:http://plnkr.co/12rp7WqmDpPJC5ASazkJ
请注意,我只是在IE9上目睹了这种行为。 (不幸的是,plunker也有IE9的问题。)
有什么建议吗?任何AngularJs Core开发者都在那里? 感谢
答案 0 :(得分:0)
您可以尝试使用快捷方式并减少超时,看看它是否有所作为
$http.post(url, myData, {timeout: 5000});
此外,您在此行末尾缺少分号
$log.info('Calling Url: ' + url + '. Timeout: ' + timeout)
更正此问题并重试