SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作

时间:2013-01-25 17:42:35

标签: jquery ajax

当我做一些Ajax调用时,我一直收到这个错误...

它甚至可能与地理编码有关,但我真的不知道如何捕获错误以显示对用户有用的东西......甚至如何解决问题,因为它似乎只是引用某种指针或者什么:S 0x2ef3

  

SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作。

图像可能比错误消息更有用:

enter image description here

有什么想法吗?

我的代码在1秒内触发10个ajax调用,由地理编码服务器端处理。

错误间歇性地出现。有时我会得到地理编码的结果,有时我会得到错误。我会说我有10%的时间得到它。它完全阻止了ajax调用在jQuery中触发我的错误处理程序。

13 个答案:

答案 0 :(得分:29)

这是对我有用的修复方法。使用您的json数据发送无效的mime或bad characterset导致该错误。像这样添加字符集以帮助它混淆:

$.ajax({
  url:url,
  type:"POST",
  data:data,
  contentType:"application/json; charset=utf-8",
  dataType:"json",
  success: function(){
  ...
  }
});

参考:

Jquery - How to make $.post() use contentType=application/json?

Could not complete the operation due to error c00ce56e

答案 1 :(得分:20)

我们也遇到过类似的问题。但是,如上一条评论中所述设置字符集并没有帮助。我们的应用程序每隔60秒发出一次AJAX请求,我们的网络服务器nginx在60秒内发送Keep-Alive超时。

我们通过将保持活动超时值设置为75秒来解决问题。

这是我们认为发生的事情:

  1. IE每隔60秒发出一次AJAX请求,在请求中设置Keep-Alive。
  2. 同时,nginx知道IE忽略了Keep-Alive超时值,因此它启动了TCP连接关闭过程(在FF / Chrome的情况下由客户端启动)
  3. IE接收先前发送的请求的关闭连接请求。由于IE不期望这样做,因此会抛出错误并中止。
  4. 即使连接已关闭,nginx似乎仍在响应请求。
  5. Wireshark TCP转储将提供更清晰,我们的问题已修复,我们不希望花更多时间在它上面。

答案 2 :(得分:10)

我收到了同样的错误(SCRIPT7002: XMLHttpRequest: Network Error 0x80004004, Operation aborted),在我们的例子中,这是因为JavaScript的原始政策相同。

我们的网络应用程序正在端口8080上对我们的服务器进行JQuery AJAX调用。该调用被拦截并通过SSL重新路由(由于服务器规则要求传入流量使用SSL)。

一旦我们通过SSL端口加载我们的Web应用程序,问题就解决了。

答案 3 :(得分:2)

我遇到了这个问题,一个返回一些JSON的AJAX Post请求会失败,最终会返回abort,其中包含:

  

SCRIPT7002:XMLHttpRequest:网络错误0x2ef3

控制台中出现

错误。在其他浏览器(Chrome,Firefox,Safari)上,完全相同的AJAX请求也没问题。

追踪我的问题 - 调查显示该回复缺少状态代码。在这种情况下,它应该是500内部错误。这是使用服务堆栈生成的C#Web应用程序的一部分,需要显式设置错误代码。

IE似乎将连接打开到服务器,最终它超时并且它已经中止了#39;请求;尽管收到了内容和其他标题。

IE可能会在帖子中处理标题时出现问题。

更新Web应用程序以正确返回状态代码解决了问题。

希望这有助于某人!

答案 4 :(得分:2)

由于使用长xml字符串作为参数值的ajax GET调用,我的项目中发生了此问题。通过以下方法解决: 将它作为ajax post调用Java Spring MVC控制器类方法就像这样。

$.ajax({
    url: "controller_Method_Name.html?variable_name="+variable_value,
    type: "POST",
    data:{ 
            "xmlMetaData": xmlMetaData // This variable contains a long xml string
    },
    success: function(response)
    {
        console.log(response);
    }
  });

Spring MVC Controller类方法:

@RequestMapping(value="/controller_Method_Name")
  public void controller_Method_Name(@RequestParam("xmlMetaData") String metaDataXML, HttpServletRequest request)
{
   System.out.println(metaDataXML);
}

答案 5 :(得分:1)

我有一段时间出现此错误,并找到了解决方法。此修复程序适用于Asp.net应用程序,Strange仅在IE非兼容模式下失败,但适用于Firefox和Crome。为所有/特定用户提供对webservice服务文件夹的访问解决了该问题。

在web.config文件中添加以下代码:

 <location path="YourWebserviceFolder">
  <system.web>
   <authorization>
    <allow users="*"/>
   </authorization>
  </system.web>
 </location>

答案 6 :(得分:1)

在尝试使用IE11上传文件时,XMLHttpRequest收到上述错误后,我偶然发现了这些问题和答案:

var reqObj = new XMLHttpRequest();

//event Handler
reqObj.upload.addEventListener("progress", uploadProgress, false);
reqObj.addEventListener("load", uploadComplete, false);
reqObj.addEventListener("error", uploadFailed, false);
reqObj.addEventListener("abort", uploadCanceled, false);

//open the object and set method of call (post), url to call, isAsynchronous(true)
reqObj.open("POST", $rootUrlService.rootUrl + "Controller/UploadFiles", true);

//set Content-Type at request header.for file upload it's value must be multipart/form-data
reqObj.setRequestHeader("Content-Type", "multipart/form-data");

//Set header properties : file name and project milestone id
reqObj.setRequestHeader('X-File-Name', name);

// send the file
// this is the line where the error occurs
reqObj.send(fileToUpload);

删除行reqObj.setRequestHeader("Content-Type", "multipart/form-data");解决了问题。

注意:此错误在其他浏览器中显示的方式非常不同。即Chrome显示类似于连接重置的内容,类似于Fiddler报告的内容(由于突然连接关闭而导致空响应)。

此外,仅当从与WebServer不同的计算机上传时才会出现此错误(localhost上没有问题)。

答案 7 :(得分:1)

我只想添加解决这个问题的方法,因为它与上述所有答案都不同。

导致问题的ajax调用试图传递空数据对象。 IE似乎不喜欢这样,但其他浏览器并不介意。

要解决此问题,我只需从ajax调用中删除data: {},

答案 8 :(得分:1)

Apache 2更改KeepAliveTimeout将其设置为60或更高

答案 9 :(得分:0)

将虚拟主机中针对KeepAliveTimeout的指令提升到60解决了这个问题。

答案 10 :(得分:0)

在我的asp.net项目中遇到过同样的问题,最后我发现问题是目标函数不是静态的,在我把关键字设为静态后修复了这个问题。

[WebMethod]
public static List<string> getRawData()

答案 11 :(得分:0)

<强> [解决]

我今天只看到了这个错误,但对我来说错误代码却不同。

  

SCRIPT7002:XMLHttpRequest:网络错误0x2efd,无法完成   由于错误00002efd的操作。

它是随机发生的而不是一直发生的。但它注意到的是,如果它是后续的ajax调用。所以我 在ajax调用之间放了5秒的延迟 并解决了。

答案 12 :(得分:0)

如果这些解决方案都不够“清晰”,则基本上IE / Edge无法正确解析AJAX调用的“数据”字段。您很有可能发送“已编码” JSON对象。

失败原因: "data": "{\"Key\":\"Value\"}"

有效方法: "data":'{"Key":"Value"}'