使用場景:
jsp頁面中使用jquery的ajax請求比較頻繁,以前vue框架的項目用過axios,所以就想着用then()封裝一個公共請求的方法,這樣每次請求就不用那么麻煩的寫一大堆請求參數了。
示例代碼:
/** * 封裝請求方法 * @param {Object} url 接口請求地址 * @param {Object} data 接口請求參數(無需請求方式參數,則此項可以為空,否則必須傳) * @param {Object} params 請求方式參數(可以為空) */ function ajax(url, data, params) { return new Promise(function(resolve, reject) { $.ajax({ url: "<{$params['wap_url']}>" + url, type: params && params.type || 'post', dataType: params && params.dataType || 'JSON', data: data, success: function(res) { resolve(res) }, error: function(res) { alert(res.m) } }); }); }
//引用方法 var params={ goods_id:"" } this.ajax("package/goodslist",params).then(function(data){ console.log(data) })
代碼解析:
如上,ajax請求的具體請求在封裝的方法中進行處理並返回響應數據,調用方法只需要傳入接口地址、請求參數就可以了。
如果需要使用其他的請求方式,則通過 params 參數傳入預置的 type 和 dataType。
如果需要設置其他的請求參數,則直接對封裝方法中擴展就可以了 。
注意事項:
1. 本例只是根據當前需求進行了簡單的封裝,可以根據自己的需要進行調整。
2. 調用封裝好的請求方法必須傳入url參數,如果ajax請求的配置參數不需要額外設置的話,則接口請求參數可以不傳,如:
this.ajax("package/goodslist").then(function(data){ console.log("ddd,",data) })
但是,如果ajax請求的配置參數需要配置,則接口參數即使沒有,也得傳個空值過去,如:
this.ajax("package/goodslist","",{type:"get"}).then(function(data){ console.log("ddd,",data) })
當然你可以嘗試使用es6的解構賦值進行傳參。