不知何故,我們能夠在Chrome(最新穩定版)& Firefox上創建跨源XHR請求,而不使用CORS或任何類型的東西。我對此感到困惑,因此提出這個問題。跨域請求在沒有CORS的情況下進行
做一個XHR POST請求http://partychat-hooks.appspot.com/post/p_mwe2ztni
與數據:
{body:"Some text"}
如果你是一個支持jQuery的網站,只是在控制檯上鍵入$.post("http://partychat-hooks.appspot.com/post/p_mwe2ztni",{body:"Hello World"})
。 SO有Jquery,所以你現在可以按F12並將其粘貼到控制檯中。
請求從網絡選項卡中的「等待」轉爲「取消」。瀏覽器甚至給我們一個警告但是,wireshark告訴我這個請求實際上已經完成。 (並通過聊天室中的ping進行確認(請通過[email protected]加入我們))。
以下屏幕截圖示出了三兩件事:
- 請求被JS
- 製成的瀏覽器中止請求,因爲它是一個跨源請求的w/o CORS。 (大概一個OPTIONS請求應該已經發送)
- 右上角的彈出窗口顯示請求以某種方式成功。
這裏是Wireshark的顯示請求響應(擔任過谷歌的AppEngine)截圖
您可以從here得到PCAP文件。
此外,值得注意的是,我沒有看到任何瀏覽器根據OPTIONS請求(它應該檢查CORS支持)。
有人請幫我們解決這個謎。
從我讀到的內容來看,簡單的請求會運行資源共享檢查,這將在第1步(0訪問控制 - 允許源頭)中失敗,應用網絡錯誤步驟,從而使請求失敗。 – Nemo
好了,它可以檢查標題,請求已完成。這只是意味着JS沒有被授予訪問權限。 – Greg