vue:详解vue中的代理proxy

vue:详解vue中的代理proxy问题我们本地调试一般都是 npmrunserve 然后打开本机 ip 8080 localhost 8080 对吧 这时候我们要调接口调试 后端的接口的地址可能在测试环境 也可能是自己电脑的 ip 总之不是你的 lcoalhost 8080 那么你调接口就会产生跨域 那么怎么办呢 就需要 proxy 出场了复习一下跨域的解决方案 jsonpcorsNod 中间件代理 两次跨域 nginx 反向代理 CORS 支持所有类型的 HTTP 请求 是跨域 HTTP 请求的根本解决方案 JSONP 只支持 GET 请求

问题

我们本地调试一般都是 npm run serve,然后打开 本机ip:8080localhost:8080)对吧,这时候我们要调接口调试,后端的接口的地址可能在测试环境,也可能是自己电脑的 ip,总之不是你的 lcoalhost:8080,那么你调接口就会产生跨域,那么怎么办呢?就需要proxy出场了

复习一下跨域的解决方案

  1. jsonp
  2. cors
  3. Node中间件代理(两次跨域)
  4. nginx反向代理
  • CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案
  • JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。
  • 不管是Node中间件代理还是nginx反向代理,主要是通过同源策略对服务器不加限制。

原理

vue 中的 proxy 就是利用了 Node 代理,原理还是因为服务器端没有跨域这一说嘛,也是用了这么一个插件 地址

场景

1、假设你要调取的接口是 http://e.dxy.net/api/test,然后你可以在本地调 localhost:8080/api/test,如axios.get('/api/test')
配置代理后,会做如下转发:
localhost:8080/api/test -> http://e.dxy.net/api/test
localhost:8080/bcma/api/test -> http://e.dxy.net/bcma/api/test


//vue-cli3.0 里面的 vue.config.js做配置 devServer: { 
    proxy: { 
    '/api': { 
    target: 'http://e.dxy.net', // 后台接口域名 ws: true, //如果要代理 websockets,配置这个参数 secure: false, // 如果是https接口,需要配置这个参数 changeOrigin: true, //是否跨域 } } } 

2、当你调接口后端的命名没有统一给接口前加 /api 这类的标识,那么你可以自己加,也就是你可以在本地调 localhost:8080/api/test,如axios.get('/api/test'),而你要的目标接口是 http://e.dxy.net/test,你就可以用 pathRewrite,遇到 /api 就去找代理 http://e.dxy.net 并且把 /api 重写为 /
所以转发效果就是:
localhost:8080/api/test -> http://e.dxy.net/test

//vue-cli3.0 里面的 vue.config.js做配置 devServer: { 
    proxy: { 
    '/api': { 
    target: 'http://e.dxy.net', // 后台接口域名 ws: true, //如果要代理 websockets,配置这个参数 secure: false, // 如果是https接口,需要配置这个参数 changeOrigin: true, //是否跨域 pathRewrite:{ 
    '^/api': '/' } } } } 

3、这个是对所有的接口都代理的,不止是检测到 /api 的接口,比如:
localhost:8080/api/test -> http://e.dxy.net/api/test
localhost:8080/test -> http://e.dxy.net/test

devServer: { 
    proxy: 'http://e.dxy.net' } 

扩展几个常用的devServer配置

module.exports = { 
    //... devServer: { 
    disableHostCheck: true } }; 
module.exports = { 
    //... devServer: { 
    publicPath: '/assets/' } }; 

确保devServer.publicPath始终以正斜杠开头和结尾。

扩展几个vue/cli3的配置

完整版本

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233323.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • task scheduler什么意思_女贞子的功效与作用

    task scheduler什么意思_女贞子的功效与作用前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系正文TaskScheduler的核心任务是提交TaskSet到集群运算并汇报结果。(1)为TaskSet创建和维护一个TaskSetManager,并追踪任务的本地性以及错误信息。(2)遇到Straggle任务时,会放到其他节点进行重试。(3)向DAGScheduler

    2022年10月11日
    5
  • Cookie重点

    Cookie重点

    2021年10月3日
    152
  • springcache清除缓存_什么叫做缓存数据

    springcache清除缓存_什么叫做缓存数据概述从spring3开始,spring开始支持缓存组件,并提供了一系列非常方便的注解。其中,Cache接口定义了基本的增删改查方法,Spring提供了一些默认的实现,比如RedisCa

    2022年8月16日
    7
  • 4g模块怎么使用_STM32库开发实战指南:基于STM32F4

    4g模块怎么使用_STM32库开发实战指南:基于STM32F4这部分一直再看,资料都已经整理好了,但是一直没有汇总。接下来就详细的看一下,GSM这部分是怎么实现的。

    2025年7月20日
    5
  • Reaver linux 安装教程

    Reaver linux 安装教程首先安裝:Reaver相關庫文件打開終端機:$sudoapt-getinstalllibpcap-dev$sudoapt-getinstalllibsqlite3-dev安裝Reaver1.4$sudoapt-getinstallsubversion#部署svn環境$cdDesktop$svncheckouthttp://reaver-wps.googlecode.co…

    2022年6月3日
    40
  • Gradle的使用教程

    Gradle的使用教程一、相关介绍Gradle是一个好用的构建工具,使用它的原因是:配置相关依赖代码量少,不会像maven一样xml过多 打包编译测试发布都有,而且使用起来方便 利用自定义的任务可以完成自己想要的功能二、安装下载地址http://services.gradle.org/distributions/,下载你所需要对应的版本,我这里下载的是grad…

    2022年6月28日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号