axios.config.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*axios拦截*/
  2. import axios from 'axios'
  3. import config from './api.config'
  4. // 配置 axios,并生成实例
  5. const creatAxios1 = axios.create({
  6. baseURL: config.SERVER_URL1,
  7. withCredentials: true
  8. })
  9. // 拦截器配置
  10. creatAxios1.interceptors.request.use(configData => { // 请求拦截 在发送请求之前做些什么
  11. // 请求成功做的事情 configData 中包含:url、method等信息
  12. return configData
  13. }, error => { // 请求失败做的事情
  14. return Promise.reject(error)
  15. })
  16. creatAxios1.interceptors.response.use(response => { // 响应拦截 对响应数据做点什么
  17. // 响应成功做的事情
  18. response.data.code = Number(response.data.code) // 将接口返回的状态值 code 处理为数字
  19. return response
  20. }, error => { // 响应失败做的事情
  21. return Promise.reject(error)
  22. })
  23. function sendAll (arr) { // 顺序和请求发送的顺序相同,使用 axios.spread 分割成多个单独的响应对象
  24. if (Object.prototype.toString.call(arr) === '[object Array]') {
  25. return axios.all(arr).then(axios.spread(function (...res) { // axios.all 是axios的静态方法,不是实例上的方法
  26. // 请求全部都执行完成
  27. return Promise.resolve(res)
  28. }))
  29. } else {
  30. const error = new Error('参数错误!')
  31. try {
  32. throw error
  33. } catch (e) {
  34. // console.log(e)
  35. }
  36. }
  37. }
  38. export default {
  39. creatAxios1,
  40. sendAll
  41. }