原生及jq方式使用ajax
1.原生js實現Ajax方法:
var Ajax={get: function (url,fn){var obj=new XMLHttpRequest(); // XMLHttpRequest對象用于在后臺與服務器交換數據 obj.open('GET',url,true); obj.onreadystatechange=function(){ if (obj.readyState == 4 && obj.status == 200 || obj.status == 304) { // readyState==4說明請求已完成 fn.call(this, obj.responseText); //從服務器獲得數據 } }; obj.send(null); }, post: function (url, data, fn) { var obj = new XMLHttpRequest(); obj.open("POST", url, true); obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // 發(fā)送信息至服務器時內容編碼類型 obj.onreadystatechange = function () { if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { // 304未修改 fn.call(this, obj.responseText); } }; obj.send(data); } }注釋:
a.open() 方法需要三個參數:
第一個參數定義發(fā)送請求所使用的方法(GET 還是 POST)。與 POST 相比,GET 更簡單也更快,并且在大部分情況下都能用。然而,在以下情況中,請使用 POST 請求:
- 無法使用緩存文件(更新服務器上的文件或數據庫)
- 向服務器發(fā)送大量數據(POST 沒有數據量限制)
- 發(fā)送包含未知字符的用戶輸入時,POST 比 GET 更穩(wěn)定也更可靠
第二個參數規(guī)定服務器端腳本的 URL(該文件可以是任何類型的文件,比如 .txt 和 .xml,或者服務器腳本文件,比如 .asp 和 .php (在傳回響應之前,能夠在服務器上執(zhí)行任務))。
第三個參數規(guī)定應當對請求進行異步地處理(true(異步)或 false(同步))。
b.send() 方法可將請求送往服務器。
c.onreadystatechange 屬性存有處理服務器響應的函數。
d.readyState 屬性存有服務器響應的狀態(tài)信息。每當 readyState 改變時,onreadystatechange 函數就會被執(zhí)行。
2.jq方式實現Ajax方法:
$(document).ready(function(){ $("#search").click(function(){ $.ajax({ type: "GET", url: "http://127.0.0.1:8080/ajaxdemo/serverjson2.php?number=" + $("#keyword").val(), dataType: "json", success: function(data) { if (data.success) { $("#searchResult").html(data.msg); } else { $("#searchResult").html("出現錯誤:" + data.msg); } }, error: function(jqXHR){ alert("發(fā)生錯誤:" + jqXHR.status); }, }); }); $("#save").click(function(){ $.ajax({ type: "POST", url: "serverjson.php", data: { name: $("#staffName").val(), number: $("#staffNumber").val(), sex: $("#staffSex").val(), job: $("#staffJob").val() }, dataType: "json", success: function(data){ if (data.success) { $("#createResult").html(data.msg); } else { $("#createResult").html("出現錯誤:" + data.msg); } }, error: function(jqXHR){ alert("發(fā)生錯誤:" + jqXHR.status); }, }); }); });注:
type:類型,“POST”或者“GET”,默認為“GET”
url:發(fā)送請求的地址
data:是一個對象連同請求發(fā)送到服務器的數據
dataType:預期服務器返回的數據類型。如果不指定,jQuery將自動根據包含HTTP包MIME信息來智能判斷,一般我們采用json格式,可以設置為“json”
success:是一個方法,請求成功后的回掉函數。傳入返回后的數據,以及包含成功代碼的字符串
error:是一個方法,請求失敗時調用此函數。傳入XMLHttpRequest對象
轉載于:https://www.cnblogs.com/rushjs/p/7094621.html
總結
以上是生活随笔為你收集整理的原生及jq方式使用ajax的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VueJS定义组件规则
- 下一篇: 【k8s】K8S中的IP地址(Node