1. 程式人生 > >Ajax中$.post()和$.ajax()總結

Ajax中$.post()和$.ajax()總結

初學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();