request.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import axios from 'axios';
  2. // 适配uniapp所有端
  3. const uniAdapter = (config) => {
  4. return new Promise((resolve, reject) => {
  5. uni.request({
  6. method: config.method.toUpperCase(),
  7. url: config.baseURL + config.url,
  8. data: config.data,
  9. header: config.headers,
  10. timeout: config.timeout,
  11. success: (res) => {
  12. resolve({
  13. data: res.data,
  14. status: res.statusCode,
  15. config: config,
  16. headers: res.header
  17. })
  18. },
  19. fail: (err) => {
  20. reject(new Error(err.errMsg || '请求失败'))
  21. }
  22. })
  23. })
  24. }
  25. const instance = axios.create({
  26. baseURL: 'https://m.douban.com/',
  27. timeout: 100000,
  28. adapter:uniAdapter
  29. });
  30. // 添加请求拦截器
  31. instance.interceptors.request.use(function (config) {
  32. // 在发送请求之前做些什么
  33. return config;
  34. }, function (error) {
  35. // 对请求错误做些什么
  36. return Promise.reject(error);
  37. });
  38. // 添加响应拦截器
  39. instance.interceptors.response.use(function (response) {
  40. // 2xx 范围内的状态码都会触发该函数。
  41. // 对响应数据做点什么
  42. return response.data;
  43. }, function (error) {
  44. // 超出 2xx 范围的状态码都会触发该函数。
  45. // 对响应错误做点什么
  46. return Promise.reject(error);
  47. });
  48. export default instance;