AJAX(Asynchronous JavaScript and XML)是一種用于創建交互式網頁應用程序的技術。然而,由于瀏覽器的同源策略,AJAX請求通常只能在同一域名下發起??缬騿栴}是開發者在實施AJAX時經常遇到的挑戰之一。本文將介紹AJAX如何解決跨域問題,并通過具體的舉例說明其工作原理。
首先,讓我們考慮一個常見的跨域問題。假設我們正在開發一個電商網站,需要從服務器獲取產品信息并在前端顯示。然而,產品信息存儲在另一個域名下的數據服務器上。根據同源策略,我們無法在網頁中直接從數據服務器獲取產品信息。
var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://www.datadomain.com/products', true); xhr.onreadystatechange = function() { if(xhr.readyState === 4 && xhr.status === 200) { var products = JSON.parse(xhr.responseText); displayProducts(products); } }; xhr.send();
在這個例子中,我們試圖通過AJAX請求從數據服務器獲取產品信息。然而,由于請求的域名(www.datadomain.com)與當前網頁的域名不同,瀏覽器將拒絕這個請求。
為了解決這個跨域問題,我們可以使用JSONP(JSON with Padding)技術。JSONP通過動態創建