」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何解決AJAX跨域通訊問題?

如何解決AJAX跨域通訊問題?

發佈於2024-11-24
瀏覽:439

How Can I Solve the AJAX Cross-Domain Communication Problem?

HTTP 跨域通訊:AJAX 困境

HTTP 跨域通訊:AJAX 困境

XMLHttpRequest 是AJAX 技術的支柱,它強制執行跨域策略,阻礙通訊與外部伺服器的通訊。嘗試使用 AJAX 請求從不同網域檢索資料會導致可存取性錯誤。 為了克服此限制,引入了 JSONP。然而,由於預期的 JSON 格式與接收到的資料不匹配,它經常會引入語法錯誤。

唯一可行的解​​決方案:伺服器端代理

The最實用的解決方案是使用伺服器端語言作為代理。此技術可讓您透過在伺服器上執行的中間腳本間接存取跨網域資料。

使用jQuery 和PHP 實作

實現跨域資料使用jQuery 和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 部分:

]$.ajax({ url: 'proxy.php', 類型:'發布', 數據: { 網址:'http://www.google.com' }, 成功:函數(響應){ // 回應現在包含 google.com 的完整 HTML } });

$.ajax({
    url: 'proxy.php',
    type: 'POST',
    data: {
        address: 'http://www.google.com'
    },
    success: function(response) {
        // response now contains full HTML of google.com
    }
});
PHP 代理(proxy.php):

How Can I Solve the AJAX Cross-Domain Communication Problem?
PHP 代理(proxy.php):

echo file_get_contents($_POST['address']);

透過利用此透過這種方法,您可以有效地存取和顯示來自外部網域的數據,同時遵守AJAX 跨域策略。請注意所抓取資料的任何限製或潛在問題。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3