Vue3跨域解决方案实例详解

 更新时间:2023年01月26日 12:10:28   作者:Nanchen_42  
这篇文章主要介绍了Vue3跨域解决方案详解,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

vue项目配置代理

vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    proxy:{
        '/api':{
            target: 'http://xx.xx.xxx.xx',
            changeOrigin:true,
            pathRewrite: {
                '^/api': ''
            }
        }
    }
 
}
})

如果是用vue3+ts则在vue.config.ts中添加以下代码:

  server: {
// 跨域的写法
    proxy: {
      '/api': {
        target: 'http://nvzu.xxx.cn/', // 实际请求地址
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ""),
      },
    },
  },
// 不跨域的写法
/*   server: {
    host: '192.168.1.195'
    // 0.0.0.0
  }, */

axios.js

"use strict";
 
import axios from "axios";
 
// Full config:  https://github.com/axios/axios#request-config
axios.defaults.baseURL = '/api' || '';
// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
 
let config = {
// 这里的api就是获取configJS中的地址
  baseURL: '/api'
  // timeout: 60 * 1000, // Timeout
  // withCredentials: true, // Check cross-site Access-Control
};
 
const _axios = axios.create(config);
 
_axios.interceptors.request.use(
  function(config) {
    // Do something before request is sent
    return config;
  },
  function(error) {
    // Do something with request error
    return Promise.reject(error);
  }
);
 
// Add a response interceptor
_axios.interceptors.response.use(
  function(response) {
    // Do something with response data
    return response;
  },
  function(error) {
    // Do something with response error
    return Promise.reject(error);
  }
);
export default{
  install:function(app){
    app.config.globalProperties.axios = _axios;
    app.config.globalProperties.$translate = (key) =>{
      return key
    }
  }
}
/* Plugin.install = function(Vue) {
  Vue.axios = _axios;
  window.axios = _axios;
  Object.defineProperties(Vue.prototype, {
    axios: {
      get() {
        return _axios;
      }
    },
    $axios: {
      get() {
        return _axios;
      }
    },
  });
};
Vue.use(Plugin)
export default Plugin; */

页面使用proxy.axios.get/post进行获取跨域接口

<template>
  <div class="home">
    <img alt="Vue logo" src="http://9i0i.com/pic.php?p=../assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>
 
<script>
import {getCurrentInstance} from 'vue'  // 引入Vue3中的getCurrentInstance
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
 
export default {
  name: 'HomeView',
  mounted(){
    const {proxy} = getCurrentInstance();
    console.log(proxy);
    // Axios.get
    proxy.axios.get('/index_category/data').then((e)=>{
      console.log(e);
    })
  },
  components: {
    HelloWorld
  }
}
</script>

到此这篇关于Vue3跨域解决方案实例详解的文章就介绍到这了,更多相关Vue3跨域解决方案内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • vue项目中播放rtmp视频文件流的方法

    vue项目中播放rtmp视频文件流的方法

    这篇文章主要介绍了vue项目中播放rtmp视频文件流 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • vue项目无法删除的问题及解决

    vue项目无法删除的问题及解决

    这篇文章主要介绍了vue项目无法删除的问题及解决方案,具有很好的参考价值,希望对的大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 详解Vue中的基本语法和常用指令

    详解Vue中的基本语法和常用指令

    Vue.js 是一套构建用户界面的框架,**只关注视图层**,它不仅易于上手,还便于与第三方库或既有项目整合。这篇文章主要介绍了vue 的基本语法和常用指令,需要的朋友可以参考下
    2019-07-07
  • Vue 实现双向绑定的四种方法

    Vue 实现双向绑定的四种方法

    这篇文章主要介绍了Vue 实现双向绑定的四种方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-03-03
  • Vite中自制mock服务器(不使用第三方服务)

    Vite中自制mock服务器(不使用第三方服务)

    本文主要介绍了Vite中自制mock服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • vue实现给div绑定keyup的enter事件

    vue实现给div绑定keyup的enter事件

    这篇文章主要介绍了vue实现给div绑定keyup的enter事件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Vue在echarts?tooltip中添加点击事件案例详解

    Vue在echarts?tooltip中添加点击事件案例详解

    本文主要介绍了Vue项目中在echarts?tooltip添加点击事件的案例详解,代码具有一定的价值,感兴趣的小伙伴可以来学习一下
    2021-11-11
  • Vue路由的懒加载深入详解

    Vue路由的懒加载深入详解

    这篇文章主要介绍了vue-router路由懒加载及实现方式,路由懒加载的主要作用是将?路由对应的组件打包成一个个的js代码块,只有在这个路由被访问到的时候,才会加载对应组件的代码块,需要的朋友可以参考下
    2022-12-12
  • 使用vue-cli创建项目的图文教程(新手入门篇)

    使用vue-cli创建项目的图文教程(新手入门篇)

    这篇文章主要介绍了新手入门vue 使用vue-cli创建项目的图文教程,本文是针对完全不了解过vue和npm的小白而写的,需要的朋友可以参考下
    2018-05-05
  • Vue中接收二进制文件流实现pdf预览的方法

    Vue中接收二进制文件流实现pdf预览的方法

    本文主要介绍了Vue中接收二进制文件流实现pdf预览的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论

?


http://www.vxiaotou.com