[英]Cross domain problems with my POST function
我有一個MVC其余Web API,該API具有如下所示的方法:
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,它可以完美運行! 但是,當我嘗試在其他域上使用它時,可以說是domain-3,它失敗了。
我嘗試了CORS,它可以在IE9之外的所有瀏覽器上使用。
有什么解決辦法嗎? 會很感激。
您的錯誤消息中是否提到了有關跨域策略的內容? 我遇到了類似的問題,並收到了該消息。
嘗試在您的Web服務文件夾中創建文件crossdomain.xml,包括以下內容:
<?xml version="1.0"?>
<\!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
您可能需要將*更改為另一個更嚴格的值。 但是,如果可行,您可以從那里開始
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.