jquery ajax 调用 .net web api 出错
项目用jquery ajax 调用 .net web api。
$.support.cors = true;
$.ajax({
type: "GET",
url: "http://www.xxx.com/api/Subject/GetSubject",
dataType: "json",
data: {id:"123"},
//async: false,
processData: true,
//crossDomain: true,
success: function (html) {
alert("成功!");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("出错!");
}
});
症状如下:
web api在本地的时调用正常(web api 和 web 在localhost 的不同端口(也算是跨域))。
web api发布以后,再调用时,ie10正常获取数据,ie9、ie8都报错。
经过跟踪jquery库,可能出问题的有两处:
function createStandardXHR() {
try {
return new window.XMLHttpRequest();
} catch( e ) {}
}
function createActiveXHR() {
try {
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch( e ) {}
}
new window.XMLHttpRequest(); 返回 完成该操作所需的数据还不可使用。
另外一处是
send: function( headers, complete ) {}方法体中
xhr.open( s.type, s.url, s.async ); 这句抛出异常,
message:"拒绝访问。\r\n"
number:-2147024891
请大侠们指点迷津。