
//定義一個公眾處理ajax的方法 function handelAjax(url,method,parm,callback) { $.ajax({ url:url, type:method, dataType:'json', data:pram, success:function(data) { callback(data); }, error:function(err) { alert(err); } }) } //實現查詢 handelAjax('/user/search','post',{name:'wes'},function(data) { //成功后的操作 console.log('data: ',data); });
ajax的異步:現在和將來:
現在發送一個異步的ajax,然后在將來才能得到返回的結果。從現在到將來的“等待”,最簡單的辦法(不是唯一的)是使用一個回調函數。
//ajax是某個庫提供的函數:
ajax('www.baidu.com",function mycallback(data){consloe.log(data); //這里得到了一些數據 }
♠ 注意:在技術上可以實現發送ajax的同步請求,但是,在任何情況下都不應該使用這種方式,因為它會鎖定瀏覽器UI(按鈕,菜單,滾動條等),並阻塞所有用戶的交互。所以一定要避免。
其中ajax跳入error函數的原因:
出現任何錯誤都會跳到error函數里去;
舉例說明錯誤的原因:
1.URL路徑有問題
路徑里面不能有中文
2.傳遞的參數有問題
參數必須是ajax支持的編碼格式,如:用JSON.parm(),JSON.stringify()等
3.data不能為空
即使不傳值也要傳一個"{}"
4.dataType
后台傳入的dataType和前台寫的不一致
5.async請求同步異步的問題
async默認請求方式是true(異步請求),如果想一個ajax請求完成之后再去請求另一個ajax,需要將async設置為false;
例如,你用post請求傳值到另一個頁面后台,但是頁面一加載你的ajax就已經執行過了,傳值接收是在后台才完成的,這時候就請求不到數據,所以可以考慮把ajax請求改為同步試試。
關於其中ajax跳入error函數的原因參考了網上的一篇博客