request.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. import axios from 'axios';
  2. import cookies from 'vue-cookies'
  3. import Qs from 'qs'
  4. // 创建请求实例
  5. const instance = axios.create({
  6. baseURL: 'http://81.68.234.235:8032',
  7. // 指定请求超时的毫秒数
  8. timeout: 10000,
  9. // 表示跨域请求时是否需要使用凭证
  10. withCredentials: false,
  11. });
  12. // 前置拦截器(发起请求之前的拦截)
  13. instance.interceptors.request.use(
  14. (config) => {
  15. /**
  16. * 在这里一般会携带前台的参数发送给后台,比如下面这段代码:
  17. * const token = getToken()
  18. * if (token) {
  19. * config.headers.token = token
  20. * }
  21. */
  22. if(!(config.url.indexOf("pdf-tech/vppMember/create") !== -1 || config.url.indexOf("/pdf-tech/login") !== -1)){
  23. const token = cookies.get('accessToken')
  24. config.headers.Authorization = 'Bearer ' + token
  25. }
  26. return config;
  27. },
  28. (error) => {
  29. return Promise.reject(error);
  30. },
  31. );
  32. // 后置拦截器(获取到响应时的拦截)
  33. instance.interceptors.response.use(
  34. (response) => {
  35. /**
  36. * 根据你的项目实际情况来对 response 和 error 做处理
  37. * 这里对 response 和 error 不做任何处理,直接返回
  38. */
  39. return response;
  40. },
  41. (error) => {
  42. const { response } = error;
  43. if (response && response.data) {
  44. return Promise.reject(error);
  45. }
  46. const { message } = error;
  47. console.error(message);
  48. return Promise.reject(error);
  49. },
  50. );
  51. // 导出常用函数
  52. /**
  53. * @param {string} url
  54. * @param {object} data
  55. * @param {object} params
  56. */
  57. export function post(url, data = {}, params = {}) {
  58. return instance({
  59. method: 'post',
  60. url,
  61. data,
  62. params,
  63. });
  64. }
  65. /**
  66. * @param {string} url
  67. * @param {object} params
  68. */
  69. export function get(url, params = {}) {
  70. return instance({
  71. method: 'get',
  72. url,
  73. params,
  74. });
  75. }
  76. export function downLoad(url, params = {}) {
  77. return instance({
  78. method: 'get',
  79. url,
  80. params,
  81. responseType:"arraybuffer"
  82. });
  83. }
  84. /**
  85. * @param {string} url
  86. * @param {object} data
  87. * @param {object} params
  88. */
  89. export function put(url, data = {}, params = {}) {
  90. return instance({
  91. method: 'put',
  92. url,
  93. params,
  94. data,
  95. });
  96. }
  97. /**
  98. * @param {string} url
  99. * @param {object} params
  100. */
  101. export function _delete(url, params = {}) {
  102. return instance({
  103. method: 'delete',
  104. url,
  105. params,
  106. });
  107. }
  108. /**
  109. * @param {string} url
  110. * @param {object} data
  111. */
  112. export function postWithHeader(url, data = {}) {
  113. return instance({
  114. method: 'post',
  115. url,
  116. data,
  117. headers: {
  118. 'Content-Type': 'application/json'
  119. },
  120. dataType: "json",
  121. });
  122. }
  123. /**
  124. * @param {string} url
  125. * @param {object} data
  126. */
  127. export function putWithHeader(url, data = {}) {
  128. return instance({
  129. method: 'put',
  130. url,
  131. data,
  132. headers: {
  133. 'Content-Type': 'application/json'
  134. },
  135. dataType: "json",
  136. });
  137. }
  138. export default instance;