JavaScript Ajax Post 是一種常見的網絡基礎知識,它可以使用 Ajax 將數據發送給服務器。這種技術可以幫助我們更好地構建頂級 Web 應用程序,其中有許多機會需要與服務器進行交互并更新系統數據等等。而對于發送 Ajax 請求,則可以使用 jQuery 來簡化這一過程。下面我們將具體講述一下如何通過 JavaScript Ajax 進行 Post 請求。
首先,我們先來講解一個發送 Ajax Post 請求的簡單的例子:
$.ajax({ type: "POST", url: "example.php", data: {name: "John", location: "Boston"} }).done(function( msg ) { alert( "Data Saved: " + msg ); });
這個$.ajax 函數接受一個對象參數,每一個參數都是可選的。第一個參數是所有設置的類型,可以忽略,jQuery會自動判斷 HTTP 類型。第二個參數定義了請求的 URL,必需項,這里我們需要將它連接到具體的 PHP 文件上,以便服務器能夠處理請求。第三個參數是數據對象,這里就是將數據傳遞給服務器,采用鍵值對的方式進行聲明。當然,最后一個參數用于處理 Ajax 傳遞的數據。在這里,我們使用.done() 對返回的數據進行處理,只要請求成功,Ajax 就會觸發 done() 狀態。
需要指出的是,關于如何使用 JavaScript 完成 Ajax Post 請求,JQuery 是我們最常用的框架之一。對于不熟悉JQuery的同學,可以通過JavaScript和XMLHttpRequest來實現此功能。這里我們再來看一個不使用 jQuery 的實現例子:
var xhr = new XMLHttpRequest(); var url = "example.com"; var params = "lorem=ipsum&name=binny"; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { alert(xhr.responseText); } } xhr.send(params);
這里,我們實例化了 XMLHttpRequest 對象 xhr,將數據 POST 提交到指定的 URL("example.com")。對于這個請求,我們需要設置Content-Type 標頭,以便服務器知道我們發送的內容的類型。最后,我們添加事件監聽器,以便在請求狀態更新時處理返回內容。我們上傳 params 的數據,實際上就是一個符合URL格式的字符串,其中使用“&”符號分割每個表單域和值,使用“=”符號表示表單的鍵和值。在此例子中,我們已經定義了兩個鍵值對 “lorem=ipsum” 和 “name=binny”。
在 Ajax Post 請求中,我們還可以使用 formdata 對象,這是一種新的與 HTML5 關聯的對象,它可以方便地將數據序列化為表單數據進行提交。下面是使用 formdata 對象的示例代碼:
var fd = new FormData(document.getElementById("form1")); fd.append("location", "Boston"); $.ajax({ url: "submit.php", type: "POST", data: fd, processData: false, contentType: false });
這里,我們首先定義 FormData 對象 fd。一般來說,它接收一個表單 ID 為參數,在這個表單中填寫要提交的數據。 通過 append() 函數,我們把需要添加的數據添加到 fd 對象中。下一步是構建 Ajax 請求,其中 data 屬性使用 fd 變量。這個請求會使用 HTTP POST 方法來發送請求,同時參數 processData 和 contentType 的值都為 false。
綜上所述,HardyPress建議開發者使用JQuery來完成JavaScript Ajax Post請求。沒有 JQuery 想 jQuery 一樣簡化 Ajax 請求是非常困難的。在使用 JQuery 后,只需要幾行代碼便可以完成每一次請求,并處理響應。這種方法非常重要,因為它可以幫助我們處理普遍問題,同時避免對瀏覽器間的兼容性問題,提高我們的工作效率。