簡體   English   中英

我的POST函數的跨域問題

[英]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之外的所有瀏覽器上使用。

有什么解決辦法嗎? 會很感激。

您可以將Apache配置為接受跨站點。

以下鏈接提供了其他解決方案。

打破跨域壁壘

帶有YQL和jQuery的跨域AJAX請求

jQuery的跨域請求

使用jQuery的簡單跨域HTML請求

jQuery ajax,獲取html跨域

JavaScript:使用Web代理進行跨域XMLHttpRequest調用

希望以上鏈接可能會有所幫助。

您的錯誤消息中是否提到了有關跨域策略的內容? 我遇到了類似的問題,並收到了該消息。

嘗試在您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM