Ajax中$.post()和$.ajax()總結
阿新 • • 發佈:2019-02-05
初學AJAx,對於幾種寫法一直搞不懂,
對於$.ajax(),在官方API文件中是這麼說的:
jQuery 底層 AJAX 實現。簡單易用的高層實現見 $.get, $.post 等。$.ajax() 返回其建立的 XMLHttpRequest 物件。大多數情況下你無需直接操作該函式,除非你需要操作不常用的選項,以獲得更多的靈活性。最簡單的情況下,$.ajax()可以不帶任何引數直接使用。
兒對於$.post(),官方API文件中是這麼說的:
這是一個簡單的 POST 請求功能以取代複雜 $.ajax 。請求成功時可呼叫回撥函式。如果需要在出錯時執行函式,請使用 $.ajax。
然後先看兩個例項:
$('#btnNewFile').bind('click', function () { //請求獲得系統自動生成的招標專案編號,並顯示到頁面的文字框中 $.post("/InviteBid/GetInviteBidId", function (data, status) { $("#NewFile").hide(); $('#BidInfo').show(); $('#InviteBidId').val(data); //將請求得到的資料賦值給招標專案編號文字框 $("#btnArea").show(); //更改標題 $("#MainContent").panel({ title:"填寫專案資訊" }); }); });
//提交使用者輸入的必要的專案資訊,根據此資訊生成相應的Word模板,這裡可以用$.post()方法代替 $.ajax({ type:"POST", url: "/InviteBid/ReceiveInfo", contentType: "application/json", //如果提交的是json資料型別,則必須有此引數,表示提交的資料型別 //dataType: "json", //表示返回值型別,不必須 data: JSON.stringify({ "InviteBidInfo": [{ 'BidProId': BidProId, 'BidProType': BidProType, 'BidProName': BidProName, 'ItemType': ItemType }] }), success: function (jsonResult) { //在原來的頁面跳轉到下載word模板的頁面 window.location.href = "/InviteBid/ExportTemplateFile"; }, error: function (data){ alert("下載模板失敗!"); } }); });
之前已經總結過ajax方法中引數的解析,本文這兩個方式可以理解為一個簡單的,一個完整的,其中$.post()方法中的function(){}只有當請求成功響應成功是才能執行該方法(可以理解為完整寫法中succes:後的方法),如果需要在請求出錯時執行函式,則只能使用 $.ajax();