index.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // 根域名
  2. // var baseUrl = 'http://121.28.24.104:13898/app/';
  3. // var baseUrl = 'http://192.168.1.59:8080';
  4. var baseUrl = 'http://121.18.118.242:13898/prod-api/';
  5. // var baseUrl = 'http://192.168.1.42:8090';
  6. module.exports = (vm) => {
  7. // 初始化请求配置:config 为默认全局配置
  8. uni.$u.http.setConfig((config) => {
  9. config.baseURL = baseUrl; /* 根域名 */
  10. // 配置请求头信息
  11. config.header = {
  12. // 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
  13. // 'content-type': 'application/json;charset=utf-8',
  14. };
  15. config.method = 'GET'; //支持post、get、put、delete
  16. config.dataType = 'json'; // 设置为json,返回后会对数据进行一次JSON.parse()
  17. config.timeout = 60000;
  18. return config
  19. })
  20. // 请求拦截
  21. uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
  22. // 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
  23. config.data = config.data || {};
  24. config.header['content-Type'] = config.header['content-Type'] == undefined ?
  25. 'application/json;charset=utf-8' : config.header['content-Type']
  26. // 设置token
  27. // const token = getApp().globalData.token || '';
  28. const token = uni.getStorageSync('token') || '';
  29. config.header['Authorization'] = 'Bearer ' + token
  30. // 设置设备端类型
  31. // config.header['os'] = uni.$u.os() || '';
  32. return config;
  33. }, config => { // 可使用async await 做异步操作
  34. return Promise.reject(config)
  35. })
  36. // 响应拦截
  37. uni.$u.http.interceptors.response.use((response) => {
  38. /* 对响应成功做点什么 可使用async await 做异步操作*/
  39. const res = response.data;
  40. // console.log(res)`
  41. // res为服务端返回值,可能有code,result等字段
  42. if (res.code == 200) {
  43. return res;
  44. } else if (res.code == 400) {
  45. uni.$u.toast(res.msg)
  46. return false;
  47. } else if (res.code == 401) {
  48. // 401为token失效
  49. // uni.setStorageSync('token', ''); // 缓存token
  50. uni.$u.toast(res.msg)
  51. // setTimeout(() => {
  52. // vm.$u.route('/pages/login/login')
  53. uni.clearStorageSync()
  54. uni.reLaunch({
  55. url: "/pages/login/login"
  56. })
  57. // }, 1500)
  58. return false;
  59. } else if (res.code == 405) {
  60. // 405为token为空
  61. return false;
  62. } else if (res.code == 1) {
  63. uni.$u.toast(res.msg)
  64. return false;
  65. } else if (res.code == undefined) {
  66. return res;
  67. } else {
  68. // 如果需要catch返回,则进行reject
  69. return Promise.reject(res)
  70. }
  71. }, (response) => {
  72. // 对响应错误做点什么 (statusCode !== 200)
  73. uni.showToast({
  74. title: "网络异常,请稍后重试",
  75. icon: "none"
  76. })
  77. return Promise.reject(response)
  78. })
  79. }