1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // wx.request封装
- const app = getApp()
- const request = async (url, options, contentType) => {
- let openId;
- await new Promise(resolve => {
- let tiems = setInterval(() => {
- // 如果此时openid已被赋值
- openId = app.globalData.openid; // data里要固定添加openid(项目需要)
- if (!!app.globalData.openid) {
- clearInterval(tiems)
- resolve()
- }
- }, 500);
- })
- !!contentType?contentType:contentType="application/x-www-form-urlencoded'"
- return new Promise( (resolve, reject) => {
- wx.request({
- url: `${app.mangerUrl}${url}?openId=${openId}`,//获取域名接口地址
- method: options.method, //配置method方法
- data:options.data,
- //如果是GET,GET自动让数据成为query String,其他方法需要让options.data转化为字符串
- header: {
- 'Content-Type': contentType,
- 'Cookie':wx.getStorageSync('cookieKey')||''
- },
- success(request) {
- if (request && request.header && request.header['Set-Cookie']) {
- if(request.header['Set-Cookie'].indexOf("SESSION")==0){
- wx.setStorageSync('cookieKey', request.header['Set-Cookie']); //保存Cookie到Storage
- }
- }
- //监听成功后的操作
- resolve(request.data)
- },
- fail(error) {
- //返回失败也同样传入reject()方法
- reject(error.data)
- }
- })
- })
- }
- //封装get方法
- const get = (url, options = {}) => {
- return request(url, {
- method: 'GET',
- data: options
- })
- }
- //封装post方法
- const post = (url, options,contentType) => {
- return request(url, {
- method: 'POST',
- data: options
- },contentType)
- }
- //封装put方法
- const put = (url, options) => {
- return request(url, {
- method: 'PUT',
- data: options
- })
- }
- //封装remove方法
- // 不能声明DELETE(关键字)
- const remove = (url, options) => {
- return request(url, {
- method: 'DELETE',
- data: options
- })
- }
- //抛出wx.request的post,get,put,remove方法
- module.exports = {
- get,
- post,
- put,
- remove
- }
|