request.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //使用方法
  2. // require("promise.prototype.finally").shim(); //使用时请引用finally
  3. // import {request} from '../../request/request'
  4. // request({
  5. // url: '/room/list',
  6. // }).then(res => {
  7. // console.log(res)
  8. // }).catch(err => {
  9. // console.log(err)
  10. // }).finally(() => {
  11. // Loading.close()
  12. // })
  13. //配置文件
  14. import axios from 'axios'
  15. export function request(config) {
  16. let baseURL;
  17. // uEnvDev;开发者模式,点击运行
  18. if (process.env.NODE_ENV === 'development') {
  19. // TODO
  20. baseURL = "http://b2bcnapi.sailuntire.com/allstell/test/app"
  21. }
  22. // uEnvProd;生产模式,点击发行
  23. if (process.env.NODE_ENV === 'production') {
  24. // TODO
  25. baseURL = "http://b2bcnapi.sailuntire.com/allstell/test/app";
  26. };
  27. let newVar = axios.create({
  28. baseURL: baseURL,
  29. timeout: 10000
  30. });
  31. // 响应拦截器
  32. newVar.interceptors.response.use({},
  33. error => {
  34. console.log('err' + error)
  35. let { message } = error;
  36. if (message == "Network Error") {
  37. message = "系统接口连接异常";
  38. uni.showToast({
  39. icon: 'none',
  40. title: message,
  41. position: "bottom"
  42. })
  43. }
  44. else if (message.includes("timeout")) {
  45. message = "系统接口请求超时";
  46. uni.showToast({
  47. icon: 'none',
  48. title: message,
  49. position: "bottom"
  50. })
  51. }
  52. else if (message.includes("Request failed with status code")) {
  53. message = "系统接口" + message.substr(message.length - 3) + "异常";
  54. uni.showToast({
  55. icon: 'none',
  56. title: message,
  57. position: "bottom"
  58. })
  59. }
  60. console.log(message)
  61. return Promise.reject(error)
  62. }
  63. )
  64. return newVar(config);
  65. }
  66. //在uni-app中使用对app有效果,h5不需要
  67. axios.defaults.adapter = function (config) {
  68. config.headers.token = uni.getStorageSync('token');
  69. return new Promise((resolve, reject) => {
  70. var settle = require('axios/lib/core/settle');
  71. var buildURL = require('axios/lib/helpers/buildURL');
  72. uni.request({
  73. method: config.method.toUpperCase(),
  74. url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
  75. header: config.headers,
  76. data: config.data,
  77. dataType: config.dataType,
  78. responseType: config.responseType,
  79. sslVerify: config.sslVerify,
  80. complete: function complete(response) {
  81. response = {
  82. data: response.data,
  83. status: response.statusCode,
  84. errMsg: response.errMsg,
  85. header: response.header,
  86. config: config
  87. };
  88. settle(resolve, reject, response);
  89. }
  90. })
  91. })
  92. }