- AJAX 教程
- AJAX - 首頁
- AJAX - 什麼是 AJAX?
- AJAX - 歷史
- AJAX - 動態網站與靜態網站
- AJAX - 技術
- AJAX - 操作
- AJAX - XMLHttpRequest
- AJAX - 傳送請求
- AJAX - 請求型別
- AJAX - 處理響應
- AJAX - 處理二進位制資料
- AJAX - 提交表單
- AJAX - 檔案上傳
- AJAX - FormData 物件
- AJAX - 傳送 POST 請求
- AJAX - 傳送 PUT 請求
- AJAX - 傳送 JSON 資料
- AJAX - 傳送資料物件
- AJAX - 監控進度
- AJAX - 狀態碼
- AJAX - 應用
- AJAX - 瀏覽器相容性
- AJAX - 示例
- AJAX - 瀏覽器支援
- AJAX - XMLHttpRequest
- AJAX - 資料庫操作
- AJAX - 安全性
- AJAX - 問題
- Fetch API 基礎
- Fetch API - 基礎
- Fetch API 與 XMLHttpRequest
- Fetch API - 瀏覽器相容性
- Fetch API - 頭資訊
- Fetch API - 請求
- Fetch API - 響應
- Fetch API - 主體資料
- Fetch API - 憑據
- Fetch API - 傳送 GET 請求
- Fetch API - 傳送 POST 請求
- Fetch API - 傳送 PUT 請求
- Fetch API - 傳送 JSON 資料
- Fetch API - 傳送資料物件
- Fetch API - 自定義請求物件
- Fetch API - 上傳檔案
- Fetch API - 處理二進位制資料
- Fetch API - 狀態碼
- Stream API 基礎
- Stream API - 基礎
- Stream API - 可讀流
- Stream API - 可寫流
- Stream API - 變換流
- Stream API - 請求物件
- Stream API - 響應主體
- Stream API - 錯誤處理
- AJAX 有用資源
- AJAX - 快速指南
- AJAX - 有用資源
- AJAX - 討論
AJAX - 傳送請求
AJAX 應用程式使用 XMLHttpRequest 物件發起或管理傳送到 Web 伺服器的資料請求,並以非常有效的方式處理或監控 Web 伺服器傳送的資料。AJAX 支援以下型別的請求:
GET 請求
POST 請求
PUT 請求
DELETE 請求
要建立連線並向 Web 伺服器傳送請求,XMLHttpRequest 物件提供了以下兩種方法
open() - 用於在 Web 瀏覽器和 Web 伺服器之間建立連線。
send() - 用於向 Web 伺服器傳送請求。
open() 方法
open() 方法用於建立與 Web 伺服器的非同步連線。一旦建立了安全連線,您就可以使用 XMLHttpRequest 的各種屬性,或者傳送請求,或者處理響應。
語法
open(method, url, async)
其中,open() 方法接受三個引數:
method - 表示用於與 Web 伺服器建立連線的 HTTP 方法(GET 或 POST)。
url - 表示將在 Web 伺服器上開啟的檔案 URL。或者我們可以說伺服器(檔案)位置。
async - 對於非同步連線,將值設定為 true。或者對於同步連線,將值設定為 false。此引數的預設值為 true。
要使用 open() 方法,首先我們建立 XMLHttpRequest 物件的一個例項。然後我們呼叫 open() 方法來初始化請求,使用 HTTP GET 或 POST 方法以及伺服器的 URL。
GET 選項用於從 Web 伺服器檢索適量的資訊,而 POST 選項用於檢索大量的資訊。因此,GET 和 POST 選項都可以配置 XMLHttpRequest 物件以使用給定的檔案。
在 open() 方法中,可以透過使用絕對路徑或相對路徑來指定 AJAX 應用程式的檔名或位置或路徑。其中絕對路徑是指定檔案確切位置的路徑,例如:
Myrequest.open("GET", "https://tutorialspoint.tw/source.txt")
這裡“source.txt”是檔名,"https://tutorialspoint.tw" 是儲存 source.txt 檔案的位置。
相對路徑用於根據 Web 伺服器上相對於 Web 應用程式檔案的位置來指定檔案的位置,例如:
Myrequest.open("GET", "my file.txt")
語法
Myrequest.send()
send() 方法
send() 方法用於將請求傳送到伺服器。您還可以向 send() 方法傳遞引數。
傳送請求
要向伺服器傳送請求,首先我們需要建立一個 XMLHttpRequest 物件的例項,然後我們建立一個回撥函式,該函式將在從 Web 伺服器獲取響應後生效。然後我們使用 open() 方法在 Web 瀏覽器和 Web 伺服器之間建立非同步連線,然後使用 send() 函式將請求傳送到伺服器。
示例
在以下程式碼中,我們從伺服器獲取指定記錄。要從伺服器獲取資料,我們點選“點選此處”按鈕。因此,當我們點選“點選此處”按鈕時,將呼叫 showDoc() 函式。在 displayDoc() 函式內部,首先建立 XMLHttpRequest 的一個物件。然後我們建立一個回撥函式來處理伺服器響應。然後我們呼叫 XHR 物件的 open() 方法來初始化請求,使用 HTTP GET 方法以及伺服器的 URL,即 "https://jsonplaceholder.typicode.com/todos/3",它從 JSONPlaceholder API 獲取一個 id = 3 的單個待辦事項列表。然後我們呼叫 send() 函式傳送請求。
<!DOCTYPE html>
<html>
<body>
<script>
function ShowDoc() {
// Creating XMLHttpRequest object
var myhttp = new XMLHttpRequest();
// Creating call back function
myhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("example").innerHTML = this.responseText;
}
};
// Open the given file
myhttp.open("GET", "https://jsonplaceholder.typicode.com/todos/3", true);
// Sending the request to the server
myhttp.send();
}
</script>
<div id="example">
<p>Please click on the button to fetch data</p>
<button type="button" onclick="ShowDoc()">Click Here</button>
</div>
</body>
</html>
輸出
點選“點選此處”按鈕後,我們將從伺服器獲取以下記錄。
因此,當伺服器響應請求時,“onreadystatechange”屬性將使用 XMLHttpRequest 物件的當前狀態呼叫回撥函式。如果“ready state”屬性設定為 4(表示請求已完成)並且“status”屬性設定為 200(表示響應成功),則從“responseText”屬性中提取響應資料,並使用“innerHTML”屬性幫助顯示 HTML 文件。示例元素。
結論
因此,這就是我們如何使用 XMLHttpRequest 傳送請求的方法。在所有這些請求中,GET 和 POST 是最常用於從伺服器獲取和傳送資料到/來自伺服器的請求。現在在下一篇文章中,我們將瞭解 AJAX 支援的請求型別。