jQuery XML 錯誤:「要求的資源上不存在「Access-Control-Allow-Origin」標頭」
嘗試時使用jQuery 存取位於不同網域的XML檔案時,您可能會遇到錯誤訊息:「請求的資源上不存在『Access-Control-Allow-Origin』標頭。」此錯誤是由於同源策略導致的,該策略限制跨來源 AJAX 呼叫。
了解同源策略
同源策略強制執行以下操作Web 瀏覽器僅允許對與發出請求的HTML 頁面位於同一域中的服務進行AJAX 調用。在給定的範例中,HTML 頁面託管在http://run.jsbin.com/ 上,而XML 檔案位於http://www.ecb.europa.eu/ 上,從而導致跨網域請求:被瀏覽器阻止。
啟用跨來源請求 (CORS)
要允許跨來源請求,伺服器必須在其回應中包含適當的標頭。這些標頭之一是 Access-Control-Allow-Origin 標頭,它指定允許存取資源的來源。
對於 XML 文件,ECB 的伺服器不提供必要的 CORS標頭,因此出現錯誤訊息。要解決此問題,需要將伺服器配置為包含以下標頭:
Access-Control-Allow-Origin: http://run.jsbin.com Access-Control-Allow-Methods: GET Access-Control-Allow-Headers: Content-Type
預檢請求注意事項
在某些情況下,例如使用非簡單標頭髮出POST 請求時,瀏覽器可以執行OPTIONS 預檢請求來確定伺服器是否支援特定請求的CORS。如果伺服器對此預檢請求的回應不包含適當的 CORS 標頭,則主請求將失敗並顯示相同的錯誤訊息。因此,在對預檢和主請求的回應中包含必要的標頭非常重要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3