vue-使用Proxy代理跨域

7 篇文章 0 订阅

什么是跨域?

域名 协议 ip地址 端口 任何一个不一样 就跨域

解决跨域?

1 jsonp —使用script的src发送 只能get 请求

2 cors 后台设置允许跨域 需要后台设置 允许跨域

​ 所有后台语言 都可以设置

3 服务器代理,服务器之间不存在跨域问题

vue在 vue.config.js 可以配置重写webpack代理

webpack代理原理:

说白了 就是通过 在本地通过nodejs 启动一个微型服务,

然后我们先请求我们的微型服务, 微型服务是服务端, 服务端**代我们去请求我们想要的跨域地址, 因为服务端是不受同源策略**的限制的, 具体到开发中,打包工具webpack集成了代理的功能,可以采用配置webpack的方式进行解决, 但是这种仅限于 本地开发期间, 等项目上线时,还是需要另择代理 nginx

以下为vuecli中配置代理的配置 :
官方地址:

https://cli.vuejs.org/zh/config/#devserver-proxy

//  在根目录添加一个  vue.config.js  文件
//   重启项目
module.exports = {
    //以下配置的效果
    //   “/api/getok.php”  -->   http://122.51.238.153/getok.php
  // 修改的配置
  devServer: {
      proxy: {
          //如果地址以/api开头,它就会请求到 http://122.51.238.153 
          '/api': {
              target: 'http://122.51.238.153',
              changeOrigin: true,
              ws: true, 
              pathRewrite: {
   				 '^/api': '',   //重写请求路径
 			 },
          }
      }
  }
}

target:接口域名;

changeOrigin: 如果设置为true,那么本地会虚拟一个服务端接收你的请求并代你发送该请求;
ws : 是否代理 websockets
pathRewrite:写 /api/xx/xx. 最后代理的路径就是 http://xxx.xx.com/api/xx/xx.
不对啊, 我正确的接口路径里面没有/api啊. 所以就需要 pathRewrite,用'^/api':'', 把’/api’去掉, 这样既能有正确标识, 又能在请求接口的时候去掉/api.

上线了如果还有跨域 可以让后台设置 允许跨域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

codingWeb

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

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

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

打赏作者

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

抵扣说明:

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

余额充值