Ajax错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成” 的归纳总结

最近在做Asp.net项目的时候,用Ajax访问服务器数据有时候老是莫名其妙的报错:SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成 。在网上查了查引起这个错误是个非常复杂的问题,也就是说有很多因素会引发这个Ajax错误,最蛋疼的是这个Ajax错误发生后,服务器端不会反回任何状态码和错误消息,所以无法直接跟踪和判断到底是什么原因引发了该错误。这里写一篇文章做一个归纳总结,将已知的错误原因总结出来,如果以后知道更多原因会不断扩充这篇文章。

原因一:Ajax的contentType记得要加charset=utf-8,否则大概率会引发Ajax错误:SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成

如果你在使用Jquery和XMLHttpRequest 等对象做Ajax请求时,设置了Ajax请求的contentType,请记住一定要在contentType后面加上charset=utf-8,否则会大概率引发SCRIPT7002错误。如果使用Jquery的Ajax发送json数据到服务器,那么正确的发送方式如下所示:

 1 var ajaxData={};
 2 ajaxData.Year=2015;
 3 ajaxData.Month=11;
 4 ajaxData.Meesage="测试信息";
 5 
 6 $.ajax({
 7     url: "/Home/GetData",
 8     data: JSON.stringify(ajaxData),
 9     type: "POST",
10     contentType: "application/json;charset=utf-8", //记住加上charset=utf-8,否则Ajax请求有可能会报SCRIPT7002错误
11     success: function(result) {
12         alert("Request sent successfully!");
13     },
14     error: function(result) {
15         alert(result.status+":"+result.statusText);
16     }
17 });

原因二:IE中Keep-Alive机制引起的错误

原文地址:https://www.cnblogs.com/OpenCoder/p/5088104.html