首頁  >  文章  >  web前端  >  如何解決跨來源 AJAX 請求中的「Access-Control-Allow-Origin 不允許來源」錯誤?

如何解決跨來源 AJAX 請求中的「Access-Control-Allow-Origin 不允許來源」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-19 11:30:01781瀏覽

How to Resolve

問題:「Origin is Not allowed by Access-Control-Allow-Origin」

使用JavaScript 執行跨域AJAX 請求時,可能會遇到以下錯誤:

Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin

出現此錯誤是由於“同源策略”,這是瀏覽器中實現的安全功能,用於防止惡意腳本存取其他網域的資料。

原因

「同源策略」將 AJAX 請求限制為與原始頁面相同的網域、協定和連接埠。如果您的 JavaScript 託管在與您嘗試存取的伺服器不同的網域、協定或連接埠上,則該請求將被封鎖。

要規避“相同” Origin Policy”,一種常見的解決方案是使用JSONP(帶有Padding 的JSON)。JSONP 允許您通過將響應包裝在在您自己的JavaScript 中定義的回呼函數中來發出跨來源請求。 🎜>傳送URL 以?callback={callback_function_name} 結尾的AJAX 請求。 >

範例

要解決給定程式碼中的錯誤(嘗試向YouTube 發出跨域POST 要求),您可以如下使用JSONP:

    在此範例中,callbackFunction 是您自己的JavaScript 中定義的函數,它將接收來自YouTube 的回應作為參數。並且在URL 中使用正確的回呼函數名稱非常重要。

以上是如何解決跨來源 AJAX 請求中的「Access-Control-Allow-Origin 不允許來源」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn