我有一个MVC的Web休息API,有看起来像这样的方法:跨域问题,我的POST功能
public HttpResponseMessage PostBook(DtoBooks Book)
{
if (Book == null)
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
Book.Id = Guid.Empty;
BookManager.Instance.Add(Book);
var response = Request.CreateResponse(HttpStatusCode.Created, Book);
return response;
}
其托管与IIS不同的域。
当我想测试做后我键入以下JS:
jQuery.ajax({
type: "POST",
url: "http://domain-2:9090/api/Values/",
dataType: "json",
data: { CallToActionUrl: 'http://domain-2/', Message: 'Hello World!', OpenInModal: false, Status: 0, TargetUser: 'domain2\admin', TimeStamp: '2014-02-28', Type: 0 },
success: function (data) {
alert("success")
},
error: function (data) {
alert("Fail")
}
});
当我浏览到http://domain-2:8080/
我可以运行这个Ajax和它完美的作品! 但是,当我尝试在不同的域上使用它可以说域-3,它会失败。
我试过CORS,它适用于IE9身边所有的浏览器..
对此有任何解决方案?将不胜感激。
如果你试图在IE9中做交叉源ajax请求,你需要使用'XDomainRequest'而不是'XMLHttpRequest'。有一个包装XDR的jQuery插件。您应该知道XDR有一些显着的限制。另一个选择是使用这样的库:https://github.com/jpillora/xdomain。 –