123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /* jshint esversion: 11 */
- import axios from 'axios';
- import {
- mergeOptions
- } from '@/utils/utils';
-
- const service = axios.create({
- // `method` 是创建请求时使用的方法
- method: "get", // 默认是 get
- // `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
- // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
- baseURL: import.meta.env.VITE_APP_BASE_URL + '',
- //contentType: "application/x-www-form-urlencoded",
- // `headers` 是即将被发送的自定义请求头
- headers: {
- "X-Requested-With": "XMLHttpRequest",
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Headers': '*'
- },
- // `params` 是即将与请求一起发送的 URL 参数
- // 必须是一个无格式对象(plain object)或 URLSearchParams 对象
- params: {
-
- },
- // `data` 是作为请求主体被发送的数据
- // 只适用于这些请求方法 "PUT", "POST", 和 "PATCH"
- // 在没有设置 `transformRequest` 时,必须是以下类型之一:
- // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
- // - 浏览器专属:FormData, File, Blob
- // - Node 专属: Stream
- data: {
-
- },
- // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
- // 如果请求花费了超过 `timeout` 的时间,请求将被中断
- timeout: 1000,
- // `withCredentials` 表示跨域请求时是否需要使用凭证
- withCredentials: false, // 默认的
- // `auth` 表示应该使用 HTTP 基础验证,并提供凭据
- // 这将设置一个 `Authorization` 头,覆写掉现有的任意使用 `headers` 设置的自定义 `Authorization`头
- // auth: {
-
- // },
- // `responseType` 表示服务器响应的数据类型,可以是 "arraybuffer", "blob", "document", "json", "text", "stream"
- responseType: "json", // 默认的
- // `maxContentLength` 定义允许的响应内容的最大尺寸
- maxContentLength: 2000,
- // "proxy" 定义代理服务器的主机名称和端口
- // `auth` 表示 HTTP 基础验证应当用于连接代理,并提供凭据
- // 这将会设置一个 `Proxy-Authorization` 头,覆写掉已有的通过使用 `header` 设置的自定义 `Proxy-Authorization` 头。
- proxy: {
- host: "127.0.0.1",
- port: 9000,
- auth: {
- username: "mikeymike",
- password: "rapunz3l"
- }
- }
- });
-
- /**
- * get请求
- * @param url 路径
- * @param data 参数
- * @param options 实例对象
- * @returns
- */
- export function get(url: string, data = {}, options = {}) {
- const defaultOptions = {
- url: url,
- method: "get",
- params: data
- }
- //合并用户配置参数信息
- options = Object.assign(defaultOptions, options)
- return common(options)
- }
-
- /**
- * post 请求
- * @param url 路径
- * @param data 参数
- * @param options 实例对象
- * @returns
- */
- export function post(url: string, data = {}, options = {}) {
- const defaultOptions = {
- url: url,
- method: "post",
- params: data,
- }
- //合并用户配置参数信息
- options = Object.assign(defaultOptions, options);
- return common(options)
- }
-
- function common(options: any) {
- return new Promise((resolve, reject) => {
- service(options).then(function (data) {
- //此处编写拦截器返回处理
-
- resolve(data)
- }).catch(function (err) {
- reject(err)
- })
- })
- }
|