我花了幾天的時間試圖確定爲什麼當我從Chrome v36.xxx更新到v37.yyy(特別是37.0.2062.103)時,我的CORS應用突然開始出現故障)在我的應用程序中,我在不同的端口上運行一個MVC站點和一個WebAPI。這是跨域進入事物的地方。CORS,在Chrome v36中工作,在Chrome v37中失敗
我有幾個實例(dev,uat,prod)都採用相同的方式。全部用於工作。
XMLHttpRequest無法加載 http://「mywebapihost」:「mywebapiport」/api/v1.0/myapp/。否 「訪問控制 - 允許來源」標題出現在請求的 資源中。 Origin'http://「mymvchost」'因此不被允許訪問。
似乎是預檢中OPTIONS請求的問題 - 我在網上看到過很多。
但是 - 我不覺得更接近「修復」我的問題(其中「修復」==能夠在Chrome中運行)。
事情,我可以說出我的系統:
(1)具有總是v36.xxx工作,但不是因爲37.0.2062.103更新 (2)在IE (3)作品的變得更加的最新的Chrome (4)即使在最新的Chrome中也能正常工作。如果我有Fiddler運行(我不把它當作修補程序)
我試過了。
1)強制在調用的jQuery的Ajax調用標題,以嘗試獲取授權進入OPTIONS調用 - 建議從網上
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', make_base_auth("<username>", "<password>"));
},
headers: {
"Authorization": "Basic " + btoa("<username>" + ":" + "<password>")
}
2)我下載的Chrome Canary v39.0.2150.3希望這個問題將會消失 - 仍然會出現同樣的問題。
如果有人有任何建議,我將非常感激,我不得不改變爲運行IE瀏覽器只是爲了取得進展!
來源報告顯然是錯誤的。你是否將其作爲本地機器的測試運行? – Rhys 2014-09-10 12:52:12
編輯製成。我爲mvc主機,webapi主機和webapi端口放置了佔位符,但由於我將它們放在「<" and ">」之內,所以未能顯示在帖子中。 順便說一句 - mvc主機和web api主機是一樣的。只有端口不同,顯然仍然被視爲「跨域」。 – chrisward 2014-09-10 13:49:40
您可以調試服務器以瞭解它爲什麼不附加Access-Control-Allow-Origin標頭嗎? – Rhys 2014-09-10 15:22:42