淺析jQuery Ajax請求參數和返回資料的處理_jquery

來源:互聯網
上載者:User

剛接觸學會用jQuery ajax的時候,覺得真東西好神奇,這樣就可以把資料取回來了啊。然後我可以把取回來的資料渲染到頁面上,一顆賽艇。

之前很早接觸到項目,並不知道怎麼優雅的去用jquery ajax(現在也不優雅);

那個時候看別人寫的代碼

$.post("","",...)

也有

$.get("","",...)

還有

$.ajax()

當然現在知道點,這些寫法都是一個意思,還是習慣用 $.ajax() 寫寫吧。

之前的資料處理,發送資料請求(json的資料格式),然後自己通過下面的方式

var request = {};request.name = $(".name").val();request.age = $(".age").val();request.sex = $(".sex").val();//...

當時表單發送的參數項少,所以沒覺得什麼,到後來一個表單很多項數,也這麼寫,結果 request 就手工寫了好多行,雖然能用吧,但是看看這樣的代碼就覺著哪裡不對勁吧,至少很不“優雅”。

後來,發現其實jquery有個 serialize 的方法可以序列化表單資料,可以省事很多。

w3c_jquery_serialize-demo

處理返回資料,渲染到頁面上去。

之前的做法也是和上面一模一樣的吧,返回的資料是json資料格式的,然後分別取值賦值給頁面元素,所以代碼往往是這樣的。

 

如果資料再多點,真的是感覺略難看。其實應該是有更好的做法的,返回的是一個json對象,所以我們可以通過遍曆對象的屬性值取到所有值然後依次渲染到頁面對應元素即可。

對象遍曆可以用 for-in 來寫(有更好的方法來寫嗎?)

$.ajax({//...success:function(result){for(var v in result){// 如果渲染的元素都是統一的輸入框形式的話,$("form").find("input[name="+ v +"]").val(result[v]); // 如果有其他元素 則另外單獨校正處理}}})

上面name(或者其他tag在頁面中先寫好,和返回資料的屬性一致)。

jQuery中ajax的4種常用請求方式

1.$.ajax()返回其建立的 XMLHttpRequest 對象。

$.ajax() 只有一個參數:參數 key/value 對象,包含各配置及回呼函數資訊。詳細參數選項見下。

如果你指定了 dataType 選項,請確保伺服器返回正確的 MIME 資訊,(如 xml 返回 "text/xml")。

執行個體:

儲存資料到伺服器,成功時顯示資訊。

$.ajax({type: "post",dataType: "html",url: '/Resources/GetList.ashx',data: dataurl,success: function (data) {if (data != "") {$("#pager").pager({ pagenumber: pagenumber, pagecount: data.split("$$")[1], buttonClickCallback: PageClick });$("#anhtml").html(data.split("$$")[0]);}}});

2.通過遠程 HTTP GET 請求載入資訊。

這是一個簡單的 GET 請求功能以取代複雜 $.ajax 。請求成功時可調用回呼函數。如果需要在出錯時執行函數,請使用 $.ajax。

執行個體:

$.get("test.cgi", { name: "John", time: "2pm" },function(data){alert("Data Loaded: " + data);}); 

3. 通過遠程 HTTP POST 請求載入資訊。

這是一個簡單的 POST 請求功能以取代複雜 $.ajax 。請求成功時可調用回呼函數。如果需要在出錯時執行函數,請使用 $.ajax。

執行個體:

$.post("/Resources/addfriend.ashx", { "fid": fids, "fname": fnames, "tuid": tuids, "tuname": tunames }, function (data) {if (data == "ok") {alert("添加成功!");}})

4.通過 HTTP GET 請求載入 JSON 資料。

執行個體:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",function(data){$.each(data.items, function(i,item){$("<img/>").attr("src", item.media.m).appendTo("#images");if ( i == 3 ) return false;});}); 

以上內容是小編給大家介紹的jQuery Ajax請求參數和返回資料的處理,希望對大家有所協助!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.