You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.4 KiB

2 months ago
2 months ago
4 weeks ago
2 months ago
2 months ago
2 months ago
2 months ago
  1. import axios from 'axios'
  2. // 创建axios实例
  3. const service = axios.create({
  4. baseURL: import.meta.env.VITE_API_BASE,//.env.development
  5. timeout: 10000,
  6. headers: {
  7. 'Content-Type': 'application/json'
  8. },
  9. // 设置请求头,指定请求体的格式为 JSON
  10. // 设置默认请求方法为 POST 这行对应的代码搁哪呢? util/http.js
  11. })
  12. // 添加上传方法
  13. export const uploadFile = (file) => {
  14. const formData = new FormData();
  15. formData.append('file', file);
  16. return service.post(import.meta.env.VITE_UPLOAD_URL, formData, {
  17. headers: {
  18. 'Content-Type': 'multipart/form-data'
  19. }
  20. });
  21. };
  22. // 请求拦截器
  23. service.interceptors.request.use(config => {
  24. const token = localStorage.getItem('token')
  25. if (token) {
  26. if (config.data) {
  27. config.data.token = token;
  28. } else {
  29. config.data = { token };
  30. }
  31. config.headers.token = `${token}`
  32. }
  33. return config
  34. }, error => {
  35. return Promise.reject(error)
  36. })
  37. // 响应拦截器
  38. service.interceptors.response.use(
  39. response => {
  40. return response
  41. },
  42. error => {
  43. // const { response } = error
  44. // if (response && response.status === 401) {
  45. // const machineId = localStorage.getItem('machineId')
  46. // localStorage.removeItem('token')
  47. // window.location.href = `/login?machineId=${machineId}`
  48. // return Promise.resolve({ needsLogin: true })
  49. // }
  50. return Promise.reject(error)
  51. }
  52. )
  53. export default service