我試圖將簡單的CORS請求發送到使用會話密鑰進行授權的外部應用程序服務器。CORS請求在Chrome中僅在有頭文件時失敗
$.ajax({
type: "GET",
url: "https://192.168.1.72:8442/api/file/",
headers: {"Authorization": "3238562439e44fcab4036a24a1e6b0fb"}
});
它工作正常,在Firefox 18,歌劇12.12和Rekonq 2.0(也Webkit使用),但在谷歌瀏覽器無法正常工作(試過版本21和24)。在Google Chrome瀏覽器中,它顯示OPTIONS資源無法在Network Inspector中加載,並且應用程序服務器未收到任何請求。我試過jQuery 1.8.3和1.9.0。
Request URL:https://192.168.1.72:8442/api/file/
Request Headers
Access-Control-Request-Headers:accept, authorization, origin
Access-Control-Request-Method:GET
Cache-Control:no-cache
Origin:https://192.168.1.72:8480
Pragma:no-cache
如果我刪除從請求頭,然後我收到401也是在谷歌Chrome和它能夠訪問資源的授權的情況下,應用程序服務器上被禁用。發送哪個頭文件無關緊要。只能發送的標題是{「Content-Type」:「plain/text」}。所有其他標題名稱/值都會在Google Chrome中發生錯誤,但可以在我上面提到的所有瀏覽器中使用。
爲什麼谷歌瀏覽器在CORS請求中不處理標題?
嘗試'authorization'具有共同'了' – Musa
@Musa:仍然相同。 –
你能列出OPTIONS請求的請求和響應頭嗎?服務器應該響應以下內容: 'Access-Control-Allow-Origin:*' 'Access-Control-Allow-Methods:GET,PUT,POST,DELETE' 'Access-Control-Allow-Headers:accept ,授權,起源' – monsur