微信小程序之上传下载交互api
wx.request(OBJECT)
OBJECT参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 开发者服务器接口地址 |
data | Object、String | 否 | 请求的参数 |
header | Object | 否 | 设置请求的 header , header 中不能设置 Referer |
method | String | 否 | 默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT |
dataType | String | 否 | 默认为 json。如果设置了 dataType 为 json,则会尝试对响应的数据做一次 JSON.parse |
success | Function | 否 | 收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'} |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数 | 说明 | 最低版本 |
---|---|---|
data | 开发者服务器返回的数据 | |
statusCode | 开发者服务器返回的状态码 | |
header | 开发者服务器返回的 HTTP Response Header | 1.2.0 |
data 数据说明 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
- 对于 header['content-type'] 为 'application/json' 的数据,会对数据进行 JSON 序列化
- 对于 header['content-type'] 为 'application/x-www-form-urlencoded' 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
示例代码:
wx.request({
url: 'test.php', //仅为示例,并非真实的接口地址
data: {
x: '' ,
y: ''
},
header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res.data)
}
})
微信小程序开发时,使用公共的url端口,自定义函数
module.exports = {
// API 接口
API_HOST: "url/"
}
const config = require('../config.js');
module.exports = {
//get方式请求
GET: function (url = '', data = {}, fn) {
console.log(data);
wx.request({
url: config.API_HOST + url,//请求地址
method: 'get',//请求方式
data: data,//请求参数
header: { "Content-Type": "application/x-www-form-urlencoded" },
success: function (res) {
fn(res);
}
});
},
//post方式请求
POST: function (url = '', data = {}, fn) {
wx.request({
url: config.API_HOST + url,//请求地址
method: 'post',//请求方式
data: data,//请求参数
header: { "Content-Type":"application/x-www-form-urlencoded"},
success: function (res) {
fn(res);
}
});
},
}
1 // 加载配置文件 2 const config = require('config.js'); 3 var app=getApp(); 4 module.exports = { 5 /** 6 * get方式请求,ulr是请求api号,token是登陆token,不用token就传空,fn是函数成功的回调函数,data为向后台传递的参数by:张涛20180303 7 */ 8 GET: function (url = '',token='' ,data = {}, fn,fail) { 9 wx.request({ 10 url: config.API_HOST + url,//请求地址 11 method: 'get',//请求方式 12 data: data,//请求参数 13 header: { "Content-Type": "application/json" ,'token':token}, 14 success: function (res) { 15 // 判断token是否失效 16 if (res.data.code=='JWT00002'||res.data.code=='JWT00001'||res.data.code=='JWT00004'||res.data.code=='403') { 17 wx.navigateTo({ 18 url:'/pages/login/login' 19 }) 20 return false; 21 } 22 fn(res); 23 }, 24 fail: function (res) { 25 // wx.showToast({ 26 // title: '请求服务器失败,请稍后再试!', 27 // icon: 'loading', 28 // duration: 2000 29 // }) 30 } 31 }); 32 }, 33 34 /** 35 * post方式请求 36 */ 37 POST: function (url = '',token='', data = {}, fn ,fail) { 38 wx.request({ 39 url: config.API_HOST + url,//请求地址 40 method: 'post',//请求方式 41 data: data,//请求参数 42 header: { "Content-Type": "application/json",'token':token}, 43 success: function (res) { 44 // 判断token是否失效 如果失效就跳转登录页面 45 if (res.data.code=='JWT00002'||res.data.code=='JWT00001'||res.data.code=='JWT00004'||res.data.code=='403') { 46 wx.navigateTo({ 47 url:'/pages/login/login' 48 }) 49 return false; 50 } 51 fn(res); 52 }, 53 fail: function (res) { 54 // wx.showToast({ 55 // title: '请求服务器失败,请稍后再试!', 56 // icon: 'loading', 57 // duration: 2000 58 // }) 59 } 60 }); 61 } 62 63 }
增加个人封装的小程序请求方法
知识无止境,追其宗,而归一