AJAX - XMLHttpRequest 物件
AJAX 的關鍵是 XMLHttpRequest 物件。
XMLHttpRequest 物件
所有現代瀏覽器都支援 XMLHttpRequest 物件。
XMLHttpRequest 物件可用於在後臺與伺服器交換資料。這意味著可以在不重新載入整個頁面的情況下更新網頁的某些部分。
建立 XMLHttpRequest 物件
所有現代瀏覽器(Chrome、Firefox、Edge(及 IE7+)、Safari、Opera)都內建了 XMLHttpRequest 物件。
建立 XMLHttpRequest 物件的語法
variable = new XMLHttpRequest();
上面示例中使用的 "ajax_info.txt" 檔案是一個簡單的文字檔案,內容如下:
<h1>AJAX</h1>
<p>AJAX 不是一種程式語言。</p>
<p>AJAX 是一種從網頁訪問 Web 伺服器的技術。</p>
<p>AJAX 代表 Asynchronous JavaScript And XML(非同步 JavaScript 和 XML)。</p>
跨域訪問
出於安全原因,現代瀏覽器不允許跨域訪問。
這意味著網頁和它嘗試載入的 XML 檔案必須位於同一臺伺服器上。
W3Schools 上的示例都打開了位於 W3Schools 域上的 XML 檔案。
如果您想在自己的某個網頁上使用上面的示例,您載入的 XML 檔案必須位於您自己的伺服器上。
XMLHttpRequest 物件的方法
方法 | 描述 |
---|---|
new XMLHttpRequest() | 建立一個新的 XMLHttpRequest 物件 |
abort() | 取消當前請求 |
getAllResponseHeaders() | 返回頭資訊 |
getResponseHeader() | 返回特定的頭資訊 |
open(method,url,async,user,psw) | 指定請求 method: 請求型別 GET 或 POST url: 檔案位置 async: true(非同步)或 false(同步) user: 可選使用者名稱 psw: 可選密碼 |
send() | 將請求傳送到伺服器 用於 GET 請求 |
send(string) | 將請求傳送到伺服器。 用於 POST 請求 |
setRequestHeader() | 向要傳送的頭資訊新增一個標籤/值對 |
XMLHttpRequest 物件屬性
屬性 | 描述 |
---|---|
onreadystatechange | 定義當 readyState 屬性更改時要呼叫的函式 |
readyState | 儲存 XMLHttpRequest 的狀態。 0: 請求未初始化 1: 伺服器連線已建立 2: 請求已接收 3: 正在處理請求 4: 請求已完成,響應已準備好 |
responseText | 將響應資料作為字串返回 |
responseXML | 將響應資料作為 XML 資料返回 |
status | 返回請求的狀態碼 200: "OK" 403: "Forbidden" 404: "未找到" 完整列表請參見 HTTP 訊息參考 |
statusText | 返回狀態文字(例如,“OK”或“Not Found”) |