优雅的解决跨域问题

本文使用了两种方法来解决前后端分离项目中出现的跨域问题。前端使用的是vue cli3搭配axios发送网络请求。

在后端的解决方案

一行代码就可以解决

response.setHeader("Access-Control-Allow-Origin", "*");

在前端的解决方案

即配置代理服务器的方法,由于在浏览器中我们无法实现跨域请求数据,但是从某个服务器向另一个服务器发送请求时就不会遇到这种问题,即使两个服务器的域不同。所以可以在前端本地配置一个代理服务器,也就是假的服务器,通过这个代理服务器向真正的服务器发送请求就可以了,配置方法非常简单:

  1. 首先在项目的根目录下新建一个vue.config.js文件,文件名也不要随便起。下面是我的项目目录,各位根据具体情况即可,只要保证该文件在根目录下就可以了。
    这是我的项目

  2. 文件中的内容

module.exports = {
  devServer: {
 	//本地服务的主机名,也就是你前端项目运行的服务所在的主机名
 	//一般情况下不会改变
    host: 'localhost',
    //本地服务的端口号,这个可以随便改
    //改成哪个端口本地服务就会在哪个端口运行
    //如果改的话最好挑数值比较大的,否则可能端口已经被占用
    port: 8080,
    //配置后端服务器
    proxy: {
    	//这个键值‘/api’表示请求的url中所有以‘/api’开头的
    	//都会经过代理服务器发送
    	//例如,后端服务器的接口url是‘http://localhost:8888/api/login’
    	//在axios中的请求url可以是‘/api/login’
    	//会自动和下面的target进行拼接,把原来的头部删除
    	//拼接成下面的
      '/api': {
      	//目标服务器的url头部
      	//看自己情况填写具体的值
        target: 'http://localhost:8888',
        //是否开启跨域,true表示开启,false表示关闭
        changeOrigin: true,
      }
    }
  }
}
  1. 重新启动项目
    这样就在前端解决了跨域问题,这是目前开发中使用最多的方法,很简单。
    欢迎批评指正,谢谢
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值