全部, 我有以下ajax请求在IE中工作正常(我知道对吗?)但是当我尝试在Chrome中使用相同的代码时,我收到以下错误:
XMLHttpRequest无法加载http://ahmwpsds01:1234/NASAService/GetNASAUser.asmx/GetUserByName。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://ahmwpsds01”访问。响应的HTTP状态代码为500。
Ajax请求
function getNASAProfile(user) {
var dfd = new $.Deferred(function () {
$.support.cors = true;
$.ajax({
type: "POST",
url: "http://ahmwpsds01:1234/NASAService/GetNASAUser.asmx/GetUserByName",
data: "{userName: '" + UserProfile.Name + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
})
.done(function (data) {
//alert('Call Succeeded');
dfd.resolve(data.d);
})
.fail(function (jqXHR, textStatus, errorThrown) {
alert('Call Failed\n\n' + jqXHR.statusText + "\n\n" + errorThrown + "\n\n" + textStatus);
});
});
return dfd.promise();
}
有什么想法吗?
答案 0 :(得分:0)
编辑:没有注意到您要发布POST请求。您应该考虑为您的案例使用后端方法
您正在尝试访问其他服务器上的资源。出于安全原因,您不能通过简单的AJAX调用来执行此操作。
要解决问题,您可以使用JSONP。这样做的简单方法是将?callback=?
添加到URL。此外,服务器响应必须包含在函数定义中。您可能希望使用YQL之类的代理将响应转换为JSONP。
有关此链接的更多信息: http://json-jsonp-tutorial.craic.com/index.html