XmlHttpRequest responseText为空,在IE

时间:2016-12-02 21:27:20

标签: javascript ajax xmlhttprequest

我有一个应用程序正在快速连续进行许多ajax调用,并且在IE 11中出现了一个新问题(在仿真时显示为开发人员控制台中的'edge' - >文档模式),以及在Windows 10计算机上的Microsoft Edge中。我的初始ajax调用成功按预期返回,但在这些返回之后,我尝试连续进行大约15到20次ajax调用,其中一些不一致地返回一个空字符串为responseText和null responseXml设置为XmlHttpRequest对象。查看net panel我会看到该调用返回状态200,但响应正文显示“没有要查看的数据”。响应标头显示没有contentLength,也没有指定contentType。预期的内容是xml。如果我将模拟器切换到IE 9,它似乎更一致,但定期也会出现同样的问题。

我在已经检查过的其他类似帖子中发现的问题:

  • readyState是4
  • 状态为200,statusText =“OK”
  • 不是同一个原始问题,请求将转到与主页面相同的服务器
  • 因为它是相同的起源和目的地,都是安全的
  • 如果我将新的浏览器窗口指向ajax调用的目标,则内容将返回预期的xml罚款

这个问题是不一致的,比如种族或计时问题,只有当我直接连续发起几个请求时才能看到问题,即使这样,它也不总是相同的请求或失败的请求数。有时,但在我目前的测试用例中很少,我会看到所有的调用都没有问题。

有趣的是,我现在无法在我的localhost上复制此问题,只有在访问我们的测试,登台或生产服务器时才会这样。

Firefox没有遇到这个问题,我们的用户群虽然是IE浏览器。

我们手动/直接启动这些ajax调用,而不是通过jQuery。我想过尝试jQuery,但它会涉及相当多的更新我的代码,并且不确定jQuery在幕后做什么比仅仅在一些方便的解析器和处理程序等中包装XmlHttpRequest对象,如果问题是使用XmlHttpRequest对象,我看不出这会有什么帮助。

我的另一个想法是在所有ajax调用之间设置强制延迟,但我不想在我们的应用程序中施加额外的延迟。我也可以尝试将它们同步,但这会产生类似的负面性能成本。

0 个答案:

没有答案