首頁 > web前端 > js教程 > 主體

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

Mary-Kate Olsen
發布: 2024-10-19 11:30:01
原創
780 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!