AJAX 跨域資料擷取
嘗試對跨網域 URL 執行 AJAX HTTP 要求時(例如,「http: //www.google.com"),瀏覽器強制執行跨域策略,禁止直接檢索和顯示data.
一種潛在的解決方案是在 AJAX 請求中使用「jsonp」資料類型。雖然這可能允許您從外部網域接收數據,但由於接收的資料的非 JSON 格式,您可能會遇到語法錯誤。
為了規避這些限制,最實用的方法是使用伺服器端語言作為代理。這涉及將跨網域 URL 傳送到您自己的伺服器上的腳本(例如,名為「proxy.php」的 PHP 腳本),然後該腳本從外部網域獲取資料並將其傳遞回您的 AJAX 呼叫。
這是一個使用 jQuery 和 PHP代理程式的範例:
jQuery程式碼:
$.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):
echo file_get_contents($_POST['address']);
以上是如何使用 AJAX 和伺服器端代理程式檢索跨域資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!