這個問題已經在stackoverflow中提及了十幾次,但我有一個不同的問題。Chrome說沒有'Access-Control-Allow-Origin'標題,但標題有
Chrome首先進行「OPTIONS」調用來獲取標題。正如你所看到的,正確的標題在那裏。
出於某種原因,Chrome並沒有注意到這個標題和以同樣的方式取消實際的請求,它會如果標題是不存在的。
的頁面實際上使三個電話和奇怪的是,他們中的一個作品。
所以現在的問題是,當標題確實是存在的,爲什麼Chrome的不尊重呢?我能做些什麼來調試它?
更新
我嘗試添加Access-Control-Allow-Methods
所以現在從選項報頭響應呼叫包括這些響應頭:
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:*
結果是相同的。
設置標頭在服務器端
我設置了服務器端頭在每次請求(在Global.asax.cs中的Application_BeginRequest)
Response.Headers.Add("Access-Control-Allow-Origin", "*");
Response.Headers.Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
Response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
使用Fiddler
經過調查我翻看原始請求和響應,發現令人驚訝的事情:錯誤是來自appl的簡單HTTP 500錯誤ication。可能是因爲HTTP 500錯誤沒有包含正確的標題,Chrome不顯示返回的錯誤,而是顯示與標題相關的錯誤。
回答
所以在最後,如果鍍鉻給人說No 'Access-Control-Allow-Origin' header
它實際上可能掩蓋一個HTTP 500錯誤。這可以通過在提琴手中檢查請求和響應來確定。
而代碼...哪裏是代碼? – Hackerman 2014-10-01 18:32:09
還應該有一個'Access-Control-Allow-Methods'標頭。我沒有看到它的截圖。 – monsur 2014-10-01 18:50:42
@RobertRozas謝謝。這個問題是關於爲什麼Chrome的行爲,所以我試圖不包括將重點從我試圖瞭解的問題的焦點。但是如果需要,我可以發佈原始請求/回覆? – 2014-10-01 19:12:54