jQuery AJAX 跨域問題
在提供的場景中,兩個PHP 檔案(test.php 和testserver.php)使用以下方式進行通訊jQuery 的AJAX,當它們駐留在不同的伺服器上時,就會出現跨網域限制。伺服器 A 託管 test.php(例如 localhost),而伺服器 B 則託管 testserver.php(例如 Web 伺服器)。
問題:
儘管成功執行了 AJAX 請求當檔案位於同一伺服器上時,如果它們位於不同的伺服器上,則會失敗並出現錯誤。這是由於同源策略 (SOP)。
解決方案:
為了解決這個跨域問題,採用了 JSONP(帶有 Padding 的 JSON)。 JSONP 利用回呼來繞過瀏覽器限制。
實作:
jQuery (test.php):
PHP (testserver.php):
說明:
注意:
另一種 jQuery 方法是 $.getJSON(),它透過附加 ' 來更簡潔地處理 JSONP 請求回調=? '到網址。但是,必須更改 URL 以包含此參數,$.getJSON() 才能正常運作。
以上是JSONP如何解決jQuery AJAX跨域問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!