HTTP 跨域通訊:AJAX 困境
XMLHttpRequest 是AJAX 技術的支柱,它強制執行跨域策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,阻礙直接存取與外部策略,並阻礙直接存取伺服器的通訊。嘗試使用 AJAX 請求從不同網域檢索資料會導致可存取性錯誤。
為了克服此限制,引入了 JSONP。然而,由於預期的 JSON 格式與接收到的資料不匹配,它經常會引入語法錯誤。
唯一可行的解決方案:伺服器端代理
The最實用的解決方案是使用伺服器端語言作為代理。此技術可讓您透過在伺服器上執行的中間腳本間接存取跨網域資料。
使用jQuery 和PHP 實作
實作跨域資料使用jQuery 和PHP 擷取:
jQuery部分:
PHP 代理(proxy.php):$.ajax({
url: 'proxy.php',
type: 'POST',
data: {
address: 'http://www.google.com'
},
success: function(response) {
// response now contains full HTML of google.com
}
});
jQuery部分:echo file_get_contents($_POST['address']);
透過利用此方法,您可以有效地存取和顯示來自外部域,同時遵守 AJAX 跨域策略。請注意所抓取資料的任何限製或潛在問題。
以上是如何解決AJAX跨域通訊問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!