在Web開發(fā)中,獲取外部資源是非常常見的操作。其中,獲取服務(wù)器端數(shù)據(jù)最為普遍,而JS中提供了一個常用的方法,就是get(url)方法。這個方法一般都是利用XMLHttpRequest對象來實現(xiàn)。
也就是說,當(dāng)調(diào)用get(url)方法時,實際上是在后臺發(fā)出一個HTTP GET請求,然后等待服務(wù)器響應(yīng),最終將獲取到的數(shù)據(jù)返回給調(diào)用該方法的程序。下面舉個例子,以便更好地理解:
//調(diào)用get(url)方法,獲取指定URL的數(shù)據(jù)并將數(shù)據(jù)顯示在頁面中 function getData(url) { //創(chuàng)建一個新的XMLHttpRequest對象 var xhr = new XMLHttpRequest(); //定義一個回調(diào)函數(shù),可以在XMLHttpRequest對象狀態(tài)改變時執(zhí)行 xhr.onreadystatechange = function() { //判斷當(dāng)前請求狀態(tài) if (xhr.readyState === 4 && xhr.status === 200) { //將獲取到的數(shù)據(jù)顯示在頁面中 document.getElementById("data").innerHTML = xhr.responseText; } }; //創(chuàng)建一個HTTP GET請求,并將url作為參數(shù)傳入 xhr.open("GET", url, true); //發(fā)送HTTP GET請求 xhr.send(); } //調(diào)用方法,獲取指定URL的數(shù)據(jù) getData("http://myserver.com/data.php");
在上面的例子中,我們定義了一個名為getData的方法,這個方法通過XMLHttpRequest對象調(diào)用get(url)方法來獲取指定URL的數(shù)據(jù)。在回調(diào)函數(shù)中,我們判斷當(dāng)前請求狀態(tài)并將獲取到的數(shù)據(jù)顯示在頁面中,這樣就實現(xiàn)了通過JS獲取服務(wù)器端數(shù)據(jù)并在頁面中顯示的功能。
當(dāng)然,我們也可以將獲取到的數(shù)據(jù)保存到一個變量中,這樣就可以在后面的代碼中對數(shù)據(jù)進(jìn)行操作:
//定義一個全局變量,用于保存獲取到的數(shù)據(jù) var myData; //調(diào)用get(url)方法,獲取指定URL的數(shù)據(jù)并保存到myData中 function getData(url) { //創(chuàng)建一個新的XMLHttpRequest對象 var xhr = new XMLHttpRequest(); //定義一個回調(diào)函數(shù),可以在XMLHttpRequest對象狀態(tài)改變時執(zhí)行 xhr.onreadystatechange = function() { //判斷當(dāng)前請求狀態(tài) if (xhr.readyState === 4 && xhr.status === 200) { //將獲取到的數(shù)據(jù)保存到myData中 myData = xhr.responseText; } }; //創(chuàng)建一個HTTP GET請求,并將url作為參數(shù)傳入 xhr.open("GET", url, true); //發(fā)送HTTP GET請求 xhr.send(); } //調(diào)用方法,獲取指定URL的數(shù)據(jù)并保存到myData中 getData("http://myserver.com/data.php"); //對myData進(jìn)行操作 console.log(myData);
在上面的例子中,我們定義了一個全局變量myData,用于保存獲取到的數(shù)據(jù)。當(dāng)調(diào)用get(url)方法時,我們在回調(diào)函數(shù)中將獲取到的數(shù)據(jù)保存到myData中。最后,我們可以在后面的代碼中對myData進(jìn)行操作,比如將myData打印到控制臺中。
總體來說,get(url)方法是JS中獲取服務(wù)器端數(shù)據(jù)的重要手段之一。通過該方法,我們可以發(fā)出HTTP GET請求,獲取指定URL的數(shù)據(jù),并將數(shù)據(jù)顯示或保存到變量中,以便在后面的代碼中對數(shù)據(jù)進(jìn)行操作。當(dāng)然,在實際開發(fā)中需要注意跨域訪問等問題,并適當(dāng)使用try-catch語句來處理get(url)方法可能拋出的異常。