axios.config.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import axios from "axios"
  2. import qs from "qs"
  3. axios.defaults.timeout = 90000 //响应时间
  4. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; //配置请求头
  5. axios.defaults.baseURL = process.env.NODE_HOST; //配置接口地址
  6. console.log(process.env)
  7. //POST传参序列化(添加请求拦截器)
  8. axios.interceptors.request.use((config) => {
  9. //在发送请求之前做某件事
  10. let token = sessionStorage.getItem('access_token') || "" //获取token
  11. if (token != "") {
  12. config.headers = {
  13. 'access-token': token,
  14. 'Content-Type': 'application/x-www-form-urlencoded'
  15. }
  16. }
  17. // if (config.data && config.data[0].post == '1' && config.method === 'post') {
  18. // // config.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
  19. // // config.data = config.data//序列化post 参数
  20. // config.data = 'mode=' + (Object.values(config.data[0]).join(','))//序列化post 参数
  21. // } else if (config.method === 'post') {
  22. // config.data = qs.stringify(config.data)//序列化post 参数
  23. // }
  24. if(config.url === 'https://gpt.cocorobo.cn/search_image' || config.url === 'https://gpt.cocorobo.cn/chat' || config.url === 'https://gpt4.cocorobo.cn/create_free_assistants' || config.url === 'https://gpt4.cocorobo.cn/assistants_completion_response') {
  25. config.data = config.data//序列化post 参数
  26. } else if (config.data && config.data[0].post == '1' && config.method === 'post') {
  27. config.data = 'mode=' + (Object.values(config.data[0]).join(','))//序列化post 参数
  28. } else if(config.method === 'post') {
  29. config.data = qs.stringify(config.data)//序列化post 参数
  30. }
  31. return config;
  32. }, (error) => {
  33. console.log('错误的传参')
  34. return Promise.reject(error);
  35. });
  36. //返回状态判断(添加响应拦截器)
  37. axios.interceptors.response.use((res) => {
  38. //对响应数据做些事
  39. if (!res.data.success) {
  40. let newToken = res.data.token //成功后更新token
  41. localStorage.setItem('access_token', newToken)
  42. }
  43. return res;
  44. }, (error) => {
  45. if (error.response.data.status == '401') { //如果token 过期 则跳转到登录页面
  46. this.$router.push('/login');
  47. }
  48. return Promise.reject(error);
  49. });
  50. //返回一个Promise(发送post请求)
  51. function post(url, params) {
  52. return new Promise((resolve, reject) => {
  53. axios.post(url, params)
  54. .then(response => {
  55. resolve(response);
  56. }, err => {
  57. reject(err);
  58. })
  59. .catch((error) => {
  60. reject(error)
  61. })
  62. })
  63. }
  64. ////返回一个Promise(发送get请求)
  65. function get(url, param) {
  66. return new Promise((resolve, reject) => {
  67. axios.get(url, { params: param })
  68. .then(response => {
  69. resolve(response)
  70. }, err => {
  71. reject(err)
  72. })
  73. .catch((error) => {
  74. reject(error)
  75. })
  76. })
  77. }
  78. export default {
  79. get,
  80. post,
  81. }