0

我这样调用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(); 来获取标题。这是 if 失败的地方,因为 xhr 已中止。

这是一个笨蛋:http: //plnkr.co/12rp7WqmDpPJC5ASazkJ

请注意,我只在 IE9 上目睹了这种行为。(很遗憾,plunker IE9 也有问题。)

有什么建议么?那里有任何 AngularJs Core 开发人员吗?谢谢

4

1 回答 1

0

您可以尝试使用快捷方法并减少超时,看看它是否有所作为

$http.post(url, myData, {timeout: 5000});

此外,您在此行末尾缺少分号

$log.info('Calling Url: ' + url + '. Timeout: ' + timeout)

更正此问题并重试

于 2013-10-15T00:10:37.037 回答