VUE+Springboot项目使用反向代理实现跨域请求的两种方式


方法1:

利用vue-cli自带的反向代理配置proxyTable,在modules.export中配置如下:

proxyTable: {
      '/api': {
        target: 'http://localhost:8080',// 请换成你的后端ip地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }

前台利用axios发送ajax请求方法为:

this.$axios({ url: '/getUser',method: 'get',baseURL:'/api'}).then(res=>{
          console.log(res.data);});

或者

this.$axios.get("api/getUser").then(res=>{
          console.log(res.data);
        })

这个设置的方法来自于vue-cli使用的模板插件 vuejs-templates,其作用相当于在本地部署了一个反向代理服务器解决跨域问题,文档里有说明和实例

vuejs-templates官方文档

值得注意的是,方法1只能在开发时使用。

方法2:

前端项目用反向代理工具nginx部署启动,配合nginx的反向代理配置实现跨域访问。

1. 前端项目的build

命令行进入项目根目录下,运行命令

npm  run build

将打包生成dist目录

2. nginx的配置

server {
        listen       8081; //监听端口,因为我再本地8080部署后端,故用8081
        server_name  localhost 10.45.145.192;


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


        location / {#/表示匹配访问根目录
            #root   html;#用于指定访问根目录时,访问虚拟主机的web目录
	    root D:/VueDemoSites/mi-shop-master/dist; #vue项目build的dist目录
            index  index.html index.htm;#在不指定访问具体资源时,默认展示的资源文件列表
        }
        location /api {
           rewrite  ^.+api/?(.*)$ /$1 break;
           include  uwsgi_params;
           proxy_pass   http://localhost:8080;//后端部署ip:端口
       }

以上分别为root和前台ajax请求发起时映射的后端ip和端口配置。

ajax请求方式如方法1,启动nginx,用配置的监听端口浏览器访问web,同样可以实现跨域访问。并且可以同时配置多个服务器地址。



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值