request.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. console.log(options); // 打印请求数据,调试用,上线可以注释
  39. // 发起Promise请求
  40. return new Promise((resolve, reject) =>{
  41. uni.request(options).then(data=>{
  42. var [error, res] = data;
  43. if(error != null){
  44. reject(error);
  45. uni.hideLoading();
  46. }else{
  47. // 相应拦截、根据后端的状态码来写,可以自行判断和封装
  48. console.log(res)
  49. if(res.data.code == '-1'){
  50. // uni.showToast({
  51. // icon: 'none',
  52. // title: res.data.message,
  53. // duration: 5000
  54. // });
  55. // uni.reLaunch({
  56. // url: "/pages/login/index",
  57. // success:() => {
  58. // }
  59. // });
  60. uni.hideLoading();
  61. }else{
  62. resolve(res.data);
  63. uni.hideLoading();
  64. }
  65. uni.hideLoading();
  66. }
  67. }).catch(data =>{
  68. uni.showToast({
  69. icon: 'none',
  70. title: "服务器错误",
  71. duration: 5000
  72. });
  73. uni.hideLoading();
  74. });
  75. });
  76. },
  77. get(url="",data={}){
  78. return this.send({
  79. url: url,
  80. data: data
  81. });
  82. },
  83. post(url="",data={}){
  84. return this.send({
  85. url: url,
  86. data: data,
  87. method: "POST"
  88. });
  89. }
  90. };