zoukankan      html  css  js  c++  java
  • 【IE11请求中止】 XMLHttpRequest: 网络错误 0x2ef3的意外出现

    BUG现象

    今天排查BUG遇到一个有趣的BUG,测试的截图显示

    这个BUG只在IE11下出现。

    BUG原因

    这个问题的原因是keep-alive机制引起。
    当浏览器在向一个网址发起请求时,会建立一个tcp/ip连接,之后发起的请求会复用这个连接。
    但是这个连接有两个限制,就是连接超时时间和最大连接次数,超过了就会断开,下次再请求这个地址,会重新建立一个新的ttcp/ip连接。
    在chrome和火狐下每次请求都会去验证这个tcp/ip连接是否有效,但是IE11不会,也就是说在临界点的时候,IE11去请求的话,此时未超时,那么还会复用原来的tcp/ip连接,但是此时服务端判断已经超时,那么就会废弃掉这个tcp/ip连接。
    此时的这个请求就会出现BUG中那样的网络错误0x2ef3。

    BUG解决方案

    这个错误难以重现,并且不是代码的问题。
    如果想规避这个错误,可以在服务端关闭keep-alive,但是客户端和服务端每次请求都需要建立一个tcp/ip连接,很显然不能因噎废食。
    在网上看了一些人的解决办法是说加大timeout的时间,不过只要在那个超时的临界点发出这个请求还是会出现这个问题。
    也就是说到最后,最好的解决方案:
    为了解决老板:加大timeout,假装解决了这个问题。
    为了不再看到这个BUG:倡导别用IE。

  • 相关阅读:
    szoj657 【AHSDFZNOI 7.2 WuHongxun】Odd
    cogs2652 秘术「天文密葬法」
    bzoj1026 [SCOI2009]windy数
    bzoj1862/1056: [Zjoi2006]GameZ游戏排名系统
    java-PreparedStatement的用法
    java-JDBC登录注册代码
    java-String Date Calendar之间的转换
    java-如何用eclipse打包jar
    java-通过JDBC操作数据库
    java-JDBC配置驱动程序
  • 原文地址:https://www.cnblogs.com/vvjiang/p/10009319.html
Copyright © 2011-2022 走看看