jQuery.get()方法:php
$.get(url,data,success(response,status,xhr),dataType)
該函數是簡寫的 Ajax 函數,等價於:html
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
根據響應的不一樣的 MIME 類型,傳遞給 success 回調函數的返回數據也有所不一樣,這些數據能夠是 XML root 元素、文本字符串、JavaScript 文件或者 JSON 對象。也可向 success 回調函數傳遞響應的文本狀態。jquery
參數 | 描述 |
---|---|
url | 必需。規定將請求發送的哪一個 URL。 |
data | 可選。規定連同請求發送到服務器的數據。 |
success(response,status,xhr) | 可選。規定當請求成功時運行的函數。ajax 額外的參數:json
|
dataType | 可選。規定預計的服務器響應的數據類型。數組 默認地,jQuery 將智能判斷。安全 可能的類型:服務器
|
使用 AJAX 的 GET 請求來改變 div 元素的文本:網絡
$("button").click(function(){ $.get("demo_ajax_load.txt", function(result){ $("div").html(result); }); });
jQuery.post()方法:app
$.post(url,data,success(data, textStatus, jqXHR),dataType)
該函數是簡寫的 Ajax 函數,等價於:
$.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType });
根據響應的不一樣的 MIME 類型,傳遞給 success 回調函數的返回數據也有所不一樣,這些數據能夠是 XML 根元素、文本字符串、JavaScript 文件或者 JSON 對象。也可向 success 回調函數傳遞響應的文本狀態。
參數 | 描述 |
---|---|
url | 必需。規定把請求發送到哪一個 URL。 |
data | 可選。映射或字符串值。規定連同請求發送到服務器的數據。 |
success(data, textStatus, jqXHR) | 可選。請求成功時執行的回調函數。 |
dataType | 可選。規定預期的服務器響應的數據類型。 默認執行智能判斷(xml、json、script 或 html)。 |
使用 AJAX 的 GET 請求來改變 div 元素的文本:
$("input").keyup(function(){ txt=$("input").val(); $.post("demo_ajax_gethint.asp",{suggest:txt},function(result){ $("span").html(result); }); });
實例:
一個簡單的 POST 請求功能以取代複雜 $.ajax 。請求成功時可調用回調函數。若是須要在出錯時執行函數,請使用 $.ajax。示例代碼:
Ajax.aspx:
Response.ContentType = "application/json";Response.Write("{result: '" + Request["Name"] + ",你好!(這消息來自服務器)'}");
jQuery 代碼:
$.post("Ajax.aspx", { Action: "post", Name: "lulu" }, function (data, textStatus){ // data 能夠是 xmlDoc, jsonObj, html, text, 等等. //this; // 這個Ajax請求的選項配置信息,請參考jQuery.get()說到的this alert(data.result);
}, "json");
點擊提交:
這裏設置了請求的格式爲"json":
$.ajax()這個是jQuery 的底層 AJAX 實現。簡單易用的高層實現見 $.get, $.post 等。
這裏有幾個Ajax事件參數:beforeSend ,success ,complete ,error 。咱們能夠定義這些事件來很好的處理咱們的每一次的Ajax請求。
$.ajax({ url: 'stat.php', type: 'POST', data:{Name:"keyun"}, dataType: 'html', timeout: 1000, error: function(){alert('Error loading PHP document');}, success: function(result){alert(result);} });
$.get()與$.post()的區別:
《計算機網絡》對POST和GET方法在HTTP協議中的簡單解釋:HTTP協議定義了通訊的兩種報文:請求報文和響應報文。對於請求報文來講,它的通用格式包含三個主要部分:請求行、首部行、實體主體。一般請求行的格式爲:方法字段 、 URL字段、 HTTP協議版本字段,其中方法字段就包括GET、POST方法等。
當方法字段是GET方法時內容主體爲空,而是用POST方法時才使用實體主體。
HTTP客戶機一般在用戶提交表單時使用POST方法,這時,實體主體中所包含的就是用戶在表單中的輸入值。固然,GET方法也能夠提交表單中的數據,它是經過將用戶在表單中的輸入值傳送到正確的URL來實現的。這就是咱們一般所看到的http://ei.hust.edu.cn?username="libis"&age=12。
能夠看出,在表單提交的方式上二者存在很大的不一樣:
除此以外,GET方法和POST方法另外一個重要的區別是:
$.ajax()須要注意的一些地方:
1.data主要方式有三種,html拼接的,json數組,form表單經serialize()序列化的;經過dataType指定,不指定智能判斷。
2.$.ajax只提交form以文本方式,若是異步提交包含<file>上傳是傳過不過去,須要使用jquery.form.js的$.ajaxSubmit
$.ajax() 實際應用例子
//1.$.ajax帶json數據的異步請求 var aj = $.ajax( { url:'productManager_reverseUpdate',// 跳轉到 action data:{ selRollBack : selRollBack, selOperatorsCode : selOperatorsCode, PROVINCECODE : PROVINCECODE, pass2 : pass2 }, type:'post', cache:false, dataType:'json', success:function(data) { if(data.msg =="true" ){ // view("修改爲功!"); alert("修改爲功!"); window.location.reload(); }else{ view(data.msg); } }, error : function() { // view("異常!"); alert("異常!"); } }); //2.$.ajax序列化表格內容爲字符串的異步請求 function noTips(){ var formParam = $("#form1").serialize();//序列化表格內容爲字符串 $.ajax({ type:'post', url:'Notice_noTipsNotice', data:formParam, cache:false, dataType:'json', success:function(data){ } }); } //3.$.ajax拼接url的異步請求 var yz=$.ajax({ type:'post', url:'validatePwd2_checkPwd2?password2='+password2, data:{}, cache:false, dataType:'json', success:function(data){ if( data.msg =="false" ) //服務器返回false,就將validatePassword2的值改成pwd2Error,這是異步,須要考慮返回時間 { textPassword2.html("<font color='red'>業務密碼不正確!</font>"); $("#validatePassword2").val("pwd2Error"); checkPassword2 = false; return; } }, error:function(){} }); //4.$.ajax拼接data的異步請求 $.ajax({ url:'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action', type:'post', data:'merName='+values, async : false, //默認爲true 異步 error:function(){ alert('error'); }, success:function(data){ $("#"+divs).html(data); } });