微信小程序之上传下载交互api

时间:2023-11-23 18:15:14

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);
  }
});
}, }
 
 // 加载配置文件
const config = require('config.js');
var app=getApp();
module.exports = {
/**
* get方式请求,ulr是请求api号,token是登陆token,不用token就传空,fn是函数成功的回调函数,data为向后台传递的参数by:张涛20180303
*/
GET: function (url = '',token='' ,data = {}, fn,fail) {
wx.request({
url: config.API_HOST + url,//请求地址
method: 'get',//请求方式
data: data,//请求参数
header: { "Content-Type": "application/json" ,'token':token},
success: function (res) {
// 判断token是否失效
if (res.data.code=='JWT00002'||res.data.code=='JWT00001'||res.data.code=='JWT00004'||res.data.code=='403') {
wx.navigateTo({
url:'/pages/login/login'
})
return false;
}
fn(res);
},
fail: function (res) {
// wx.showToast({
// title: '请求服务器失败,请稍后再试!',
// icon: 'loading',
// duration: 2000
// })
}
});
}, /**
* post方式请求
*/
POST: function (url = '',token='', data = {}, fn ,fail) {
wx.request({
url: config.API_HOST + url,//请求地址
method: 'post',//请求方式
data: data,//请求参数
header: { "Content-Type": "application/json",'token':token},
success: function (res) {
// 判断token是否失效 如果失效就跳转登录页面
if (res.data.code=='JWT00002'||res.data.code=='JWT00001'||res.data.code=='JWT00004'||res.data.code=='403') {
wx.navigateTo({
url:'/pages/login/login'
})
return false;
}
fn(res);
},
fail: function (res) {
// wx.showToast({
// title: '请求服务器失败,请稍后再试!',
// icon: 'loading',
// duration: 2000
// })
}
});
} }

增加个人封装的小程序请求方法