request.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // import config from './config.js';
  2. const request = (url = '', method = 'GET', data = {}, header = { //这里这样封装是为了后续具体组件中使用时可以直接传参,需按此顺序传参;而不需要写url:xxx等键值对传参
  3. //具体的header和后端商同后再编写,这里以常见的token为例
  4. 'Authorization': 'Bearer '+ (uni.getStorageSync('token') ? uni.getStorageSync('token') : ''),
  5. }) => {
  6. return new Promise((resolve, reject) => {
  7. // console.log(header);
  8. uni.request({
  9. url: 'https://teacherapi.cocorobo.cn/api/pbl' + url, //接口地址:前缀+方法中传入的地址
  10. // url: 'http://10.3.13.84:7333/api/pbl' + url, //接口地址:前缀+方法中传入的地址
  11. // url: 'http://127.0.0.1:7333/api/pbl' + url, //接口地址:前缀+方法中传入的地址
  12. method: method, //请求方法
  13. data: data, //传递参数
  14. header: header, //自定义头部,和后端商同后编写
  15. success: (res) => {
  16. // console.log(res);
  17. // console.log('request.js文件的通用接口请求封装返回的结果数据',res);
  18. //注:因为这里对请求成功的没有统一设置抛错提示,所以后续具体组件中使用接口请求的res除200(实际以后端同事定好的为准)成功外的其他code需要额外写抛错提示
  19. if (res.data.code == 405) { //自定请求失败的情况,这里以常见的token失效或过期为例
  20. console.log('token过期了');
  21. // uni.removeStorageSync('token');
  22. // uni.showModal({
  23. // showCancel: false,
  24. // title: '温馨提示',
  25. // content: res.data.msg,
  26. // success: function(result) {
  27. // if (result.confirm) {
  28. // uni.reLaunch({
  29. // url: '/pages/login/login' //这里需用绝对路径才可
  30. // });
  31. // }
  32. // }
  33. // });
  34. }
  35. resolve(res.data) //成功
  36. },
  37. // 这里的接口请求,如果出现问题就输出接口请求失败的msg;
  38. //注:因为这里对于请求失败的设置统一抛错提示了,所以后续具体组件中使用接口请求的catch中不需要再写抛错提示
  39. fail: (err) => {
  40. uni.showToast({
  41. title: "" + err.msg,
  42. icon: 'none'
  43. });
  44. reject(err)
  45. }
  46. })
  47. })
  48. }
  49. export default request;