我们知道,一个项目开发时,有许多环境,如:开发环境,测试环境,预生产环境,生成环境,若项目上线时要每个接口的域名改一遍,这是效率很低的做法。另外,许多接口都有前缀,例如 /api/ /wxapi/ /adorApi/等,所以封装请求以提高效率是很有必要的。
我封装的一个request如下,部分代码参考网络,我通常会将此文件放在public文件夹中:
var DOMAIN ="https://dev.abc.com" var requestHandler = { params: {}, API_URL: '', token: '', header: {'content-type': 'application/json'} , success: function (res) { // success }, fail: function () { // fail }, } //GET请求 function GET(requestHandler) { request('GET', requestHandler) } //POST请求 function POST(requestHandler) { request('POST', requestHandler) } function request(method, requestHandler) { //注意:可以对params加密等处理 var params = requestHandler.params; var API_URL = requestHandler.API_URL; wx.request({ url: DOMAIN+"/api/" + API_URL, data: params, method: method, header: requestHandler.header, // 设置请求的 header success: function (res) { //注意:可以对参数解密等处理 requestHandler.success(res.data) }, fail: function () { requestHandler.fail() }, complete: function () { // complete } }) } module.exports = { GET: GET, POST: POST, DOMAIN: DOMAIN }
最后导出DOMAIN是为了方便引用网络图片路径,要不然wxml中很长一条路径看得眼花!