request.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import config from "@/config"; // 配置文件
  2. import storage from "./storage"; // 缓存封装
  3. export default {
  4. console(options){
  5. if(config.debug){
  6. // console.log("<<===============================================>>");
  7. // console.log("request start");
  8. // console.log("header" + JSON.stringify(options.header));
  9. // console.log("method: " + options.method + " URL: " + options.url);
  10. // console.log(options.data);
  11. // console.log("request end");
  12. // console.log("<<===============================================>>");
  13. }
  14. },
  15. domain(){
  16. return config.uni_app_web_api_url.replace("api","");
  17. },
  18. send(options={}){
  19. // loading加载
  20. if(options.data.serviceId!=3021){
  21. uni.showLoading({
  22. title: '加载中'
  23. });
  24. }
  25. // 拼接路劲,下面的配置文件会提到
  26. options.url = config.uni_app_web_api_url + '' + options.url;
  27. // 请求方式
  28. options.method = options.method || "GET";
  29. // 这里看项目的情况来定,如果是没有token,那就删除这里,上面的storage也不需要引入
  30. let users = storage.getJson("users");
  31. if(users != null){
  32. // options.header = { "user_id" : users.user_id };
  33. options.header = { "user_token" : users.user_token,"user_id" : users.user_id };
  34. // options.headers["user_id"] = users.user_id;
  35. // options.headers["user_token"] = users.user_token;
  36. // options.data['token'] = users.token
  37. }
  38. if(options.data.serviceId!=3021){
  39. console.log(options); // 打印请求数据,调试用,上线可以注释
  40. }
  41. // 发起Promise请求
  42. return new Promise((resolve, reject) =>{
  43. uni.request(options).then(data=>{
  44. var [error, res] = data;
  45. if(error != null){
  46. reject(error);
  47. uni.hideLoading();
  48. }else{
  49. // 相应拦截、根据后端的状态码来写,可以自行判断和封装
  50. if(options.data.serviceId!=3021){
  51. console.log(res)
  52. }
  53. if(res.data.code == '-1'&&options.data.serviceId!=3021){
  54. uni.showToast({
  55. icon: 'none',
  56. title: res.data.message,
  57. duration: 5000
  58. });
  59. // uni.reLaunch({
  60. // url: "/pages/login/index",
  61. // success:() => {
  62. // }
  63. // });
  64. uni.hideLoading();
  65. }else{
  66. resolve(res.data);
  67. uni.hideLoading();
  68. }
  69. uni.hideLoading();
  70. }
  71. }).catch(data =>{
  72. uni.showToast({
  73. icon: 'none',
  74. title: "服务器错误",
  75. duration: 5000
  76. });
  77. uni.hideLoading();
  78. });
  79. });
  80. },
  81. get(url="",data={}){
  82. return this.send({
  83. url: url,
  84. data: data,
  85. sslVerify: false
  86. });
  87. },
  88. post(url="",data={}){
  89. return this.send({
  90. url: url,
  91. data: data,
  92. method: "POST",
  93. sslVerify: false
  94. });
  95. }
  96. };