request.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. uni.showLoading({
  21. title: '加载中'
  22. });
  23. // 拼接路劲,下面的配置文件会提到
  24. options.url = config.uni_app_web_api_url + '' + options.url;
  25. // 请求方式
  26. options.method = options.method || "GET";
  27. // 这里看项目的情况来定,如果是没有token,那就删除这里,上面的storage也不需要引入
  28. let users = storage.getJson("users");
  29. if(users != null){
  30. // options.header = { "user_id" : users.user_id };
  31. options.header = { "user_token" : users.user_token,"user_id" : users.user_id };
  32. // options.headers["user_id"] = users.user_id;
  33. // options.headers["user_token"] = users.user_token;
  34. // options.data['token'] = users.token
  35. }
  36. console.log(options); // 打印请求数据,调试用,上线可以注释
  37. // 发起Promise请求
  38. return new Promise((resolve, reject) =>{
  39. uni.request(options).then(data=>{
  40. var [error, res] = data;
  41. if(error != null){
  42. reject(error);
  43. }else{
  44. // 相应拦截、根据后端的状态码来写,可以自行判断和封装
  45. console.log(res)
  46. if(res.data.error == '1'){
  47. uni.hideLoading();
  48. }else{
  49. resolve(res.data);
  50. }
  51. }
  52. uni.hideLoading();
  53. });
  54. });
  55. },
  56. get(url="",data={}){
  57. return this.send({
  58. url: url,
  59. data: data
  60. });
  61. },
  62. post(url="",data={}){
  63. return this.send({
  64. url: url,
  65. data: data,
  66. method: "POST"
  67. });
  68. }
  69. };