request.js 2.6 KB

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