2016-02-08 62 views
0

我的代碼中存在CORS錯誤的問題,我運行的.js文件給Chrome和Firefox提供了錯誤,但IE瀏覽器卻沒有。我一直建議增加響應頭到它,但我很困惑在哪裏添加it.Please幫助Firefox和鉻的CORS錯誤

xhr.open(method, url, true); 

我嘗試添加xhr.setRequestHeader(「訪問控制允許來源:*」);對此,這工作?

+1

我們需要更多的信息.​​..但是你可以讀到這裏CORS https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS – epascarello

+1

歡迎來到SO。請訪問[幫助],看看有什麼和如何問。建議:張貼您的努力和錯誤消息 – mplungjan

+0

檢查此鏈接 http://stackoverflow.com/questions/5750696/how-to-get-a-cross-origin-resource-sharing-cors-post-request-working http://www.bennadel.com/blog/2327-cross-origin-resource-sharing-cors-ajax-requests-between-jquery-and-node-js.htm – brk

回答

3

不要在客戶端代碼中添加xhr.setRequestHeader(「Access-Control-Allow-Origin:*」)。

要允許跨域請求,服務器只需將Access-Control-Allow-Origin頭添加到響應。

Access-Control-Allow-Origin的值應該是允許的請求的域名,或者只是*如果允許有任何來源。

訪問控制允許來源:http://domain1.com

訪問控制允許來源:*

如果您呼叫那麼Web API方法請參考下面的測試代碼及其工作其餘的API。

客戶端代碼AJAX調用:

function CallAjax() { 
 
    
 
var xhr = new XMLHttpRequest(); 
 
xhr.open("GET", "http://localhost:54118/api/values", true); 
 
xhr.onload = function() { 
 
    console.log(xhr.responseText); 
 
    alert("sucuess"); 
 
}; 
 
xhr.send(); 
 
}

服務器端更改:

在您需要添加在Web.config以下配置在Web API項目文件。根據system.webServer部分添加以下

<httpProtocol> 
 
     <customHeaders> 
 
     <add name="Access-Control-Allow-Origin" value="*"/> 
 
     </customHeaders> 
 
    </httpProtocol>

這將允許任何域訪問資源。

希望這會有所幫助:)

+0

但我們該如何做那是我關心的問題我對此沒有太多瞭解。 – Neha

+0

@Neha我在上面的答案中添加了代碼和服務器端更改。 –