4

我想跨不同的域執行PUT請求。但腳本僅在IE中失敗。對跨域URL的PUT請求僅在IE中失敗

我想出了問題是什麼,在IE瀏覽器中,如果您查看Internet選項>安全選項卡>自定義級別>雜項>訪問數據源跨域選項設置爲禁用。我能夠讓我的請求工作的唯一方法是將該選項設置爲允許。

所以我的問題:有沒有一種方法可以讓我的工作沒有強制最終用戶設置選項?

有XDomainRequest()可用於IE中的XDomain請求,但此方法不支持PUT。

+0

您是否將使用A.C.A.Methods的PUT方法列入白名單? – dandavis

+0

我不明白你的問題 –

+0

他問你是否在服務器上正確配置了CORS支持,並帶有「Access-Control-Allow-Method」標題。但下面的答案是正確的,XDomainRequest不允許非GET/POST動詞。您需要IE10 +才能在XHR中使用PUT。 – EricLaw

回答

6

IE9及更早版本不支持跨域請求中的PUT方法。只有GET和POST。

+0

那麼有沒有其他的選擇? –

+0

CrossDomain中的PUT方法僅支持IE10 +。如果你需要PUT方法,你可以使用iframe的簡單形式。 – Mihail

+1

您能否詳細說明並舉例說明? –

0

您可以使用類似Xdomain或EasyXDM的庫來使用Post Message hack獲得CORS備選方案。

我更喜歡使用Xdomain,因爲它劫持了本機XMLHTTPRequest並提供了一個「插入式」解決方案。 EasyXDM強制您使用他們的API,這意味着更多的條件編碼開銷,但是,它支持IE6/IE7。

主要帶走?不要停止支持CORS!只要讓IE自行行動並選擇未來即可。