前端Vue2.x解决跨域问题

最近在学习实践Vue的一些练手项目,需要向后端接口请求数据,但是浏览器却频繁报红

Access to XMLHttpRequest at 'http://202.193.52.235:8080' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

翻译说是不存在这个资源请求的头,属实没懂,然后拿报错问一下度娘,说是跨域问题,普遍由后端解决,不过前端也可以通过如下方法尝试去解决跨域问题:

        首先,我们需要在Vue组件中引入并注册使用axios组件库

import Vue from 'vue'
import VueAxios from 'vue-axios'
import axios from 'axios'
Vue.use(VueAxios, axios);

        若是没安装axios组件库运行项目时就会提示安装,下面在终端输入以下命令,运行命令将在当前项目目录下安装axios组件库

npm install --save axios

        下面再来介绍一下axios组件库的全局引用注册:

在src/main.js文件中增加下列代码段

import Axios from 'axios'
Vue.prototype.$axios = Axios

        其次,在src/config/index.js文件中作如下修改:

修改前

dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {},
    ......
}

c167e39a823c4cda82370180942bc61c.png

修改后

dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      "/api": {
        target: "http://202.193.52.235:8080",// 访问的后端接口的域名地址
        ws: true,// 是否启用websockets
        changeOrigin: true, //开启代理,在本地创建虚拟服务端与后端接口进行数据请求,以此来避免跨域问题
        pathRewrite: {
            '^/api': '' //用'/api'作为target地址的模板,调用其接口'http://202.193.52.235:8080/register',以后可以简写成'/api/register'
          }
      }
    },
    ......
}

02cce9774fcc417294cc73e53007dbed.png

        最后,保存即可重新回到组件中测试调用this.$axios.post("api/register").then(res => {})

        前端跨域问题的解决方案看了好多博文也都有相通的解决方法,但是有的要么还是解决不了要么就是Vue版本不适配,就像现在是基于Vue2. 9. 6版本解决的跨域,理论Vue2. x都可以解决,虽然能够通过在本地建立虚拟服务端与后端接口请求数据,但是在浏览器调试中查看网络却也还是拦截不到接口的信息。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P̶r̶o̶t̶e̶i̶n̶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值