request.js 1.3 KB

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