vue3版本跨域 axios解决

vue3版本跨域 axios解决

  1. 先在根目录下(与src同级)新建vue.config.js文件

// vue.config.js

module.exports = {
  outputDir: 'dist', // build之后的目录名称
  assetsDir: 'assets', // 静态资源目录
  lintOnSave: false, // 是否开启eslint
  devServer: {
    open: true, // 是否自动弹出浏览器页面
    host: 'localhost',
    port: '8080',
    https: false, // 是否使用https协议
    hotOnly: false, // 是否开启热更新
    proxy: {
      '/api': {
        target: 'http://www.mxnzp.com', // 数据请求地址
        ws: true, // 是否启用websockets
        changeOrigin: true, // 是否开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {
          '^/api': '', // 这里理解成用'/api'代替target里面的地址,比如要调用'http://127.0.0.1:8080/user/delete',就可以写成'/api/user/delete'
        },
      },
    },
  },
};

vue.config.js官方配置

  1. 在main.js文件中引入axios 并添加配置;
Vue.prototype.$axios = axios;
axios.defaults.baseURL = '/api'  // `/api${process.env.VUE_APP_BASE_URL}`;
axios.defaults.headers.post['Content-Type'] = 'application/json';
Vue.config.productionTip = false; // 阻止启动生产模式的消息
  1. 在组件中引入axios并使用;
import axios from 'axios';
原请求数据api:https://www.mxnzp.com/api/holiday/single/20191117

在组件中使用

axios.get(`/api/holiday/single/${this.year}${this.month}${this.day}`).then((res) => {

请求的时候不用再次添加域名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值