我有一個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。 –