request.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import * as $auth from "./auth"
  2. import BASE_URL from './../config.js'
  3. import qs from 'qs'
  4. function error(res){
  5. if (res.statusCode === 408 || res.statusCode === 401) {// 需要重新登录
  6. $auth.removeUserToken();
  7. $auth.checkLogin()
  8. }else if(res.statusCode === 404){
  9. uni.showToast({
  10. title:"404,路径找不到:"+res.data.path,
  11. icon:"none"
  12. })
  13. }else if(res.statusCode === 503){
  14. uni.showToast({
  15. title:"服务不可用",
  16. icon:"none"
  17. })
  18. }else if(res.statusCode === 504){
  19. uni.showToast({
  20. title:"网络连接错误",
  21. icon:"none"
  22. })
  23. }else{
  24. uni.showToast({
  25. title:res.data,
  26. icon:"none"
  27. })
  28. }
  29. }
  30. export function request(body){
  31. console.log(body)
  32. let {url,method,data,header, params, responseType} = body
  33. data = data || params || {};
  34. header = header || {'Content-Type': 'application/json; charset=utf-8'}
  35. method = method.toUpperCase() || "GET";
  36. responseType = responseType || "text"
  37. let token = $auth.getUserToken();
  38. if(token){
  39. header.token = token; // 获取token值
  40. }
  41. if(method === 'POST' && header['Content-Type'] === 'application/x-www-form-urlencoded; charset=utf-8'){
  42. data = qs.stringify(data, { allowDots: true, arrayFormat: 'indices' })
  43. }else if(method === 'GET' || method === 'DELETE' || method === 'PUT'){
  44. url = url + '?' + qs.stringify(data, { allowDots: true, arrayFormat: 'indices' })
  45. data = null
  46. }
  47. let promise = new Promise((resolve,reject)=>{
  48. uni.request({
  49. url: BASE_URL + url,
  50. header:header,
  51. data: data,
  52. method: method,
  53. responseType: responseType,
  54. success: res => {
  55. if(res && res.statusCode !== 200){
  56. error(res);
  57. reject(res)
  58. }
  59. resolve(res.data);
  60. },
  61. fail: (res) => {
  62. uni.hideLoading();
  63. error(res);
  64. reject(res);
  65. },
  66. complete: () => {
  67. }
  68. });
  69. })
  70. return promise;
  71. }
  72. // 单文件上传
  73. export function upload(url, filePath,filename, formData,header,success,fail){
  74. let name = filename || 'file';
  75. header = header || {};
  76. let token = $auth.getUserToken();
  77. console.log("文件上传时token:", token)
  78. console.log("文件上传时header.token:", header.token)
  79. if(token){
  80. header.token = token; // 获取token值
  81. }
  82. console.log("上传的url:",BASE_URL + url)
  83. let promise = new Promise((resolve,reject)=>{
  84. uni.uploadFile({
  85. url: BASE_URL + url,
  86. filePath:filePath,
  87. name: 'file',
  88. formData: formData || {},
  89. header:header,
  90. success: res => {
  91. resolve(res.data);
  92. },
  93. fail: (res) => {
  94. uni.hideLoading();
  95. let err = JSON.parse(res);
  96. error(err);
  97. reject(err);
  98. },
  99. complete: () => {
  100. }
  101. });
  102. })
  103. return promise;
  104. }
  105. export function download(url,header,success,fail){
  106. header = header || {};
  107. let token = $auth.getUserToken();
  108. if(token){
  109. header.token = token; // 获取token值
  110. }
  111. if(!url){
  112. return;
  113. }
  114. let downloadTask = uni.downloadFile({
  115. url: url,
  116. success: (res) => {
  117. if(res.statusCode===200){
  118. if(success){
  119. success.call(null,res);
  120. }
  121. }else{
  122. if(fail){
  123. fail.call(null,res);
  124. }
  125. }
  126. },
  127. fail:(res) => {
  128. let err = JSON.parse(res);
  129. error(err);
  130. if(fail){
  131. fail.call(null,err)
  132. }
  133. },
  134. complete: () => {
  135. }
  136. });
  137. return downloadTask;
  138. }
  139. export default request