封装axios,以及解决跨域

import axios from "axios";
axios.defaults.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8;multipart/form-data"
if (import.meta.env.VITE_ENV == 'development') {//开发环境
    axios.defaults.baseURL = '/api';
} else if (import.meta.env.VITE_ENV == 'production') {//生产环境
    axios.defaults.baseURL = '后端接口';
}


const $axios = axios.create({
    timeout: 0,
    withCredentials: true//开启
});
//请求拦截器
$axios.interceptors.request.use(config => {
    return config;
}, err => {
    return Promise.reject(err)
})

//响应拦截器
$axios.interceptors.response.use(result => {
    return result.data;
}, err => {
    return Promise.reject(err)
})

export default $axios;
//事件代理解决跨域

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
//   envPrefix:"VITE_",
    server:{
      host:true,

      proxy:{
         '/api':{
             target:"后端接口", //跨域地址
             changeOrigin:true, //支持跨域
             rewrite:(path) => path.replace(/^\/api/, "")//重写路径,替换/api
         }
      }
   },
})

//创建.env.development页面 内容:VITE_ENV="development"
//创建.env.production页面 内容:VITE_ENV="production"
//引入封装好的接口

import request from "../packaging";

interface ad {
    code: number
    message: string
    body: {
        desc: string
        edit_time: string
        title: string
    }
}
export function get_contact(): Promise<ad> {
    return request({
        url: '/get_contact',
        method: 'get'
    })
}


interface edit_footer {
    desc: string
}
interface bc{
    code: number
    message: string
}
export function edit_contact(data: edit_footer): Promise<bc> {
    return request({
        url: `/user/edit_contact?token=${sessionStorage.getItem('token')}`,
        method: 'post',
        data: data
    })
}

//从登录返回token
interface AdminLoginData {
    password: string
    username: string
    captcha: string
}
interface AdminLoginRes {
    code: number;
    token: string;
    message: string;
}
export const login = (data: AdminLoginData): Promise<AdminLoginRes> => request.post('/user/login', data)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值