Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /* jshint esversion: 11 */
  2. import axios from 'axios';
  3. import {
  4. mergeOptions
  5. } from '@/utils/utils';
  6. const service = axios.create({
  7. // `method` 是创建请求时使用的方法
  8. method: "get", // 默认是 get
  9. // `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
  10. // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
  11. baseURL: import.meta.env.VITE_APP_BASE_URL + '',
  12. // `headers` 是即将被发送的自定义请求头
  13. headers: {
  14. "X-Requested-With": "XMLHttpRequest",
  15. 'Access-Control-Allow-Origin': '*',
  16. 'Access-Control-Allow-Headers': '*'
  17. },
  18. // `params` 是即将与请求一起发送的 URL 参数
  19. // 必须是一个无格式对象(plain object)或 URLSearchParams 对象
  20. params: {
  21. },
  22. // `data` 是作为请求主体被发送的数据
  23. // 只适用于这些请求方法 "PUT", "POST", 和 "PATCH"
  24. // 在没有设置 `transformRequest` 时,必须是以下类型之一:
  25. // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
  26. // - 浏览器专属:FormData, File, Blob
  27. // - Node 专属: Stream
  28. data: {
  29. },
  30. // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
  31. // 如果请求花费了超过 `timeout` 的时间,请求将被中断
  32. timeout: 1000,
  33. // `withCredentials` 表示跨域请求时是否需要使用凭证
  34. withCredentials: false, // 默认的
  35. // `auth` 表示应该使用 HTTP 基础验证,并提供凭据
  36. // 这将设置一个 `Authorization` 头,覆写掉现有的任意使用 `headers` 设置的自定义 `Authorization`头
  37. // auth: {
  38. // },
  39. // `responseType` 表示服务器响应的数据类型,可以是 "arraybuffer", "blob", "document", "json", "text", "stream"
  40. responseType: "json", // 默认的
  41. // `maxContentLength` 定义允许的响应内容的最大尺寸
  42. maxContentLength: 2000,
  43. // "proxy" 定义代理服务器的主机名称和端口
  44. // `auth` 表示 HTTP 基础验证应当用于连接代理,并提供凭据
  45. // 这将会设置一个 `Proxy-Authorization` 头,覆写掉已有的通过使用 `header` 设置的自定义 `Proxy-Authorization` 头。
  46. proxy: {
  47. host: "127.0.0.1",
  48. port: 9000,
  49. auth: {
  50. username: "mikeymike",
  51. password: "rapunz3l"
  52. }
  53. }
  54. });
  55. /**
  56. * get请求
  57. * @param url 路径
  58. * @param data 参数
  59. * @param options 实例对象
  60. * @returns
  61. */
  62. export function get(url: string, data = {}, options = {}) {
  63. const defaultOptions = {
  64. url: url,
  65. method: "get",
  66. params: data
  67. }
  68. //合并用户配置参数信息
  69. options = Object.assign(defaultOptions, options)
  70. return common(options)
  71. }
  72. /**
  73. * post 请求
  74. * @param url 路径
  75. * @param data 参数
  76. * @param options 实例对象
  77. * @returns
  78. */
  79. export function post(url: string, data = {}, options = {}) {
  80. const defaultOptions = {
  81. url: url,
  82. data: "post",
  83. params: data,
  84. }
  85. //合并用户配置参数信息
  86. options = Object.assign(defaultOptions, options);
  87. return common(options)
  88. }
  89. function common(options: any) {
  90. return new Promise((resolve, reject) => {
  91. service(options).then(function (data) {
  92. //此处编写拦截器返回处理
  93. resolve(data)
  94. }).catch(function (err) {
  95. reject(err)
  96. })
  97. })
  98. }