http.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //引入相关配置信息
  2. import env from "./config.js"
  3. /**
  4. * create zzq
  5. * uni请求框架的二次封装
  6. * 参数说明options:{url:...,method:...,data...}
  7. */
  8. export const request = (options) => {
  9. return new Promise((resolve, reject) => {
  10. // if(!options?.hideload){
  11. // if(options?.data?.token&&options.data.token){
  12. // uni.showLoading({
  13. // title: '',
  14. // })
  15. // }
  16. // }
  17. let token = uni.getStorageSync('AppAuthorization'); //判断是否存在请求token
  18. let header={}
  19. header=options.headers || {'Content-Type': 'application/json'}
  20. if(!token){
  21. header=options.headers || {'Content-Type': 'application/json'}
  22. }else{
  23. if(options.headers){
  24. options.headers["AppAuthorization"]=token
  25. }
  26. header=options.headers || {'Content-Type': 'application/json','AppAuthorization': token}
  27. }
  28. // // 添加 timestamp 解决接口缓存问题,保证每次请求都是最新的
  29. // options.data = {
  30. // ...options.data,
  31. // timestamp:new Date().getTime()
  32. // }
  33. uni.request({
  34. header:header, //默认是json的请求方式
  35. url: env.BASEURL + options.url, //是否是走本部门接口还是走外部接口
  36. method: options.method || 'GET', //默认是GET请求
  37. data: options.data || {}, //如果data不为空,则请求data数据信息
  38. dataType:options.dataType||"json",
  39. timeout:options.timeout||40000,
  40. success: (res) => {
  41. //判断请求响应不为200
  42. if (res.data.code == 200||(res.data.meta&&res.data.meta.success==true)) {
  43. // if(res.header.authorization &&(options.url=="platformNormalLogin" || options.url=="/newPlatformLogin" || options.url=="/platformThirdSelectLogin")){
  44. // uni.setStorageSync("authorization",res.header.authorization);
  45. // }
  46. resolve(res)
  47. }else{
  48. //提示用户相关的后端返回信息
  49. if(res.data.msg){
  50. uni.showToast({
  51. icon: "none",
  52. title: res.data.msg //后端返回的校验信息
  53. })
  54. }
  55. let noLogin = [10003,10004]
  56. if (noLogin.includes(res.data.code)) {
  57. setTimeout(() => {
  58. uni.navigateTo({
  59. url: '/pages/myinfo/login'
  60. });
  61. }, 1000);
  62. }
  63. resolve(res)
  64. }
  65. },
  66. fail: (err) => {
  67. console.log('request-fail>>>',options.url,err)
  68. //请求接口报错或服务端异常则提示用户以下信息
  69. // uni.showToast({
  70. // title: "服务端接口异常~",
  71. // icon: "none"
  72. // })
  73. reject(err)
  74. },
  75. complete() {
  76. if (!options.hideload) {
  77. uni.hideLoading()
  78. }
  79. }
  80. })
  81. })
  82. }