request.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import env from '../js/env.js';
  2. function service(options = {},flag) {
  3. options.url = `${env.baseUrl}${options.url}`;
  4. // 判断本地是否存在token,如果存在则带上请求头
  5. let access_token = uni.getStorageSync('accessToken')
  6. let refresh_token = uni.getStorageSync('refresh_token')
  7. if (flag){
  8. options.header = {
  9. 'Authorization': 'Bearer '+ access_token,
  10. 'content-type':'application/x-www-form-urlencoded'
  11. };
  12. }else {
  13. options.header = {
  14. 'Authorization': 'Bearer '+ access_token,
  15. 'content-type':'application/json'
  16. };
  17. }
  18. // resolved是返回成功数据,rejected返回错误数据
  19. return new Promise((resolved, rejected) => {
  20. options.success = (res) => {
  21. // 如果请求回来的状态码不是200则执行以下操作
  22. if (res.data.code !== 200) {
  23. // 非成功状态码弹窗
  24. console.log('错误信息:+++',res.data.msg)
  25. // 这里可以做一些状态码判断以及操作
  26. if(res.data.code === 401){
  27. uni.showToast({
  28. icon: 'none',
  29. duration: 3000,
  30. title: '登录过期,即将跳转登录页'
  31. });
  32. setTimeout(()=>{
  33. uni.navigateTo({
  34. url:'/pages/login/login'
  35. })
  36. },3000)
  37. }else{
  38. uni.showToast({
  39. icon: 'none',
  40. duration: 3000,
  41. title: res.data.msg || '系统繁忙,请重试!'
  42. });
  43. }
  44. // 返回错误信息
  45. rejected(res)
  46. } else {
  47. // 请求回来的状态码为200则返回内容
  48. resolved(res)
  49. }
  50. };
  51. options.fail = (err) => {
  52. console.log('错误信息:+++',err)
  53. // 请求失败弹窗
  54. uni.showToast({
  55. icon: 'none',
  56. duration: 3000,
  57. title: '服务器连接失败,请检查网络'
  58. });
  59. rejected(err);
  60. };
  61. uni.request(options);
  62. });
  63. }
  64. export default service;