request.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import baseUrl from '@/utils/baseurl.js'
  2. import { getToken } from '@/utils/auth';
  3. import errorCode from '@/utils/errorCode';
  4. let Fly = require("flyio/dist/npm/wx")
  5. let fly = new Fly
  6. //设置超时
  7. fly.config.timeout = 30000;
  8. //设置请求基地址
  9. fly.config.baseURL = baseUrl;
  10. fly.interceptors.request.use((config) => {
  11. // 在发送请求之前做些什么
  12. const isToken = (config.headers || {}).isToken === false
  13. if (getToken() && !isToken) {
  14. config.headers['Authorization'] = `Bearer ${getToken()}`;
  15. }
  16. return config
  17. }, function(error) {
  18. // 对请求错误做些什么
  19. return Promise.reject(error)
  20. })
  21. // 添加响应拦截器
  22. fly.interceptors.response.use((res) => {
  23. // 对响应数据做些事
  24. const { code, msg, data } = res.data
  25. const rescode = code || 200;
  26. // 获取错误信息
  27. const resmsg = errorCode[rescode] || msg || errorCode['default']
  28. // 二进制数据则直接返回
  29. if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){
  30. return resmsg
  31. }
  32. if (rescode === 401) {
  33. uni.showModal({
  34. title: '系统提示',
  35. content: '登录状态已过期,请重新登录',
  36. success: function (res) {
  37. if (res.confirm) {
  38. uni.reLaunch({
  39. url:"/pages/logo/index"
  40. })
  41. } else if (res.cancel) {
  42. console.log('用户点击取消');
  43. }
  44. }
  45. });
  46. } else if (rescode === 500) {
  47. uni.showToast({
  48. title: resmsg,
  49. icon:'none'
  50. });
  51. return Promise.reject(new Error(resmsg))
  52. } else if (rescode !== 200) {
  53. uni.showToast({
  54. title: resmsg,
  55. icon:'none'
  56. });
  57. return Promise.reject('error')
  58. } else {
  59. return data
  60. }
  61. }, (error) => {
  62. const { message } = error.message
  63. uni.showToast({
  64. title: message,
  65. duration: 5*1000,
  66. icon:'none'
  67. });
  68. return Promise.reject(error);
  69. })
  70. export default fly;