最近在做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 });