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
}
});
echo file_get_contents($_POST['address']);
以上是如何解決AJAX跨域通訊問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!