广告
返回顶部
首页 > 资讯 > 服务器 >vue服务器代理proxyTable配置如何解决跨域
  • 856
分享到

vue服务器代理proxyTable配置如何解决跨域

2024-04-02 19:04:59 856人浏览 独家记忆
摘要

目录服务器代理proxyTable配置解决跨域1、Proxy代理作用2、常见情况3、应用方式4、具体配置实例 5、配置思路Vue.proxyTable是什么?为什么会有pr

服务器代理proxyTable配置解决跨域

1、Proxy代理作用

proxy代理作用:前端服务器代理的作用是,告诉服务器任何未知请求(没有匹配到静态文件的请求),代理到一个另一个地址,从而解决跨域的问题。

2、常见情况

前端在向后端进行资源请求的时候,后端若没有使用Cros中间件,则会出现跨域问题,解决问题的办法之一就是前端使用Proxy进行服务器代理。

3、应用方式

在使用vue-cli2创建的vue项目时,在config文件夹下的index.js文件中,可以在dev相关配置信息中的proxyTable里对一个或者多个服务器进行代理。

 注:

proxyTable是vue-cli提供解决vue开发环境下跨域的方法,proxyTable的底层使用了Http-proxy-middleware,他是http代理中间件,他依赖node.js,基本原理是用服务器代理解决跨域浏览器跨域。

有时候在开发的时候,我们请求的后代接口和vue不在同一个域名产生了跨域,而后台服务器并未开启cors,这个时候需要配置proxyTable解决跨域问题。

4、具体配置实例 

proxyTable:{
  //'api'就等于target,在链接里访问/api等同于http:/182.xx.xx.xx:8888/
'/api':{
target:'http://182.xx.xx.xxx:8888/',     //服务器的接口地址
secure:ture,                           //如果是https,需要开启这个选项
changeOrigin:ture,                    //是否跨域请求?ture
pathRewrite:{
  '/^api':'api/' 
                    //如果真实接口里包含了/api,就需要这样配置
                    //等价于/^api=/api+api==http://182.xx.xx.xxx:8888/api
}
}
}

5、配置思路

在某次网络请求完整路径为  '/api/ynai/static/ai/'的时候,出现了跨域的问题,之后需要再前端对该网络请求进行一次服务器代理

具体配置如下:

①首先代理标志名,必须与请求路径中头部一致,示例代码如下:proxyTable:{ '/api' : { } }

②配置target参数,确定请求代理的服务器根路径,代码示例如下:

 ③根据需要确定ws(websocket代理)的布尔值

 ④配置changeOrigin,赋值为ture,允许跨域

 ⑤根据需要配置pathRewrite参数

若最终代理后的路径中不需要/api,那么需要配置pathRewrite的参数对路径进行重写为 ' '

代理原理:

假设有如下代理配置:

则:

1、发生网络请求时,代理配置文件会去正则匹配网络请求路径,是否与代理匹配(比如发生的请求为/aaa/static/ai/,代理配置了 '/aaa ',则匹配成功)

2、匹配成功后,代理配置生效,他将会请求/aaa/static/ai/,经过代理配置指定的方式处理,最后拼接到target指向的服务器根路径(http://www.baidu.com/)后面

3、最终形成完整的请求路径(http://www.baidu.com/static/ai),跨域问题也得以解决

小结: 前端进行服务器代理配置的视乎,必须保证代理配置文件能够匹配到axious请求的url,才能正确的将target指向的服务器地址与url拼接得到完整的跨域请求路径,进而才能够请求到远端的资源。

Vue.proxyTable是什么?

在vue项目中的config文件夹下的index文件中有一个proxyTable节点。

proxyTable是vue-cli脚手架在开发模式下,为我们提供的一个跨域的代理中转服务器服务。它是基于http-proxy-middleware插件的。

为什么会有proxyTable存在?

在我开发我的毕业设计:一个基于vue+SpringBoot的手机交易网站的时。因为我采用前后端分离,前端用的是node服务器,后端用的是Tomcat服务器。因此,因为端口不一样所以涉及跨域。

正常情况下,无法通过ajax向后台请求到数据。因为跨域,浏览器的同源策略,截获了这次数据的返回。

解决方法:

1、服务器开启cors。

2、用代理服务器中转一下(vue请求的还是自己的后台,让后台去请求需要数据的后台,然后再将数据返回给vue。

倘若我们无法从后台设置cors来进行跨域支持。那我们就只能通过配置proxyTable来进行跨域了。

配置proxyTable

proxyTable跨域的基本原理:

在开发模式下,webpack会为我们提供一个http代理服务器。我们请求接口的时候,实际上是请求的WEBpack提供的这个http代理服务器。在由这个代理服务器请求真实的数据服务器。最后数据经由webpack代理服务器。最后转交给vue程序。

为什么加个代理服务器就可以了?

因为代理服务器不是浏览器,没有同源策略限制。

proxyTable: {
      // 这里配置 '/api' 就等价于 target , 你在链接里访问 /api === http://localhost:54321
      '/api': {
        target: 'http://localhost:54321/', // 真是服务器的接口地址 // http://localhost:54321/JSON.data.json,
        secure: true, // 如果是 https ,需要开启这个选项
        changeOrigin: true, // 是否是跨域请求?肯定是啊,不跨域就没有必要配置这个proxyTable了.
        pathRewirte: {
          // 这里是追加链接,比如真是接口里包含了 /api,就需要这样配置.
 
          '/^api': 'api/', 
          // 等价于 
          // step 1  /api = http://localhost:54321/
          // step 2 /^api = /api + api == http://localhost:54321/api
        }
      }
     },

总结。

1、proxyTable就是webpack在开发环境中给我们提供的的一个代理服务器。

2、目的是为了在服务器不方便开启跨域功能的时候,我们也能方便的在开发阶段发送ajax跨域请求。

3、真实发布环境中让后台开启cors就好。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: vue服务器代理proxyTable配置如何解决跨域

本文链接: https://www.lsjlt.com/news/145985.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue服务器代理proxyTable配置如何解决跨域
    目录服务器代理proxyTable配置解决跨域1、Proxy代理作用2、常见情况3、应用方式4、具体配置实例 5、配置思路Vue.proxyTable是什么?为什么会有pr...
    99+
    2022-11-13
  • 如何使用proxytable配置解决vue-cli的跨域请求问题
    小编给大家分享一下如何使用proxytable配置解决vue-cli的跨域请求问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2022-10-19
  • vue如何配置跨域代理
    这篇文章主要介绍了vue如何配置跨域代理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。导语:首先,每一个前端开发人员都应该知道同源策略,同源...
    99+
    2022-10-19
  • vue项目配置代理如何解决跨域问题
    目录Vue项目配置代理1. 这里以axios发请求为例2. 如果发送的请求都以 /abc 开头3. 代理多个接口什么是跨域?配置(vue.config.js)总结Vue项目配置代理 ...
    99+
    2023-01-28
    vue项目配置代理 vue跨域 vue配置代理
  • vue项目实现webpack配置代理,解决跨域问题
    目录webpack配置代理,解决跨域主要是这句话vue跨域问题,修改代理后仍404接口请求用法webpack配置代理,解决跨域 在config文件夹中的index.js文件配置 主要...
    99+
    2022-11-13
  • Vue-Cli配置代理转发解决跨域问题的方法
    目录vue-cli中集成的跨域解决方案vue-cli解决跨域配置说明基地址重启项目,验证结果小结vue-cli中集成的跨域解决方案 思路: 在前端服务和后端接口服务之间 架设一个中...
    99+
    2022-11-13
  • vue项目proxyTable配置和部署服务器的问题怎么解决
    这篇文章主要介绍“vue项目proxyTable配置和部署服务器的问题怎么解决”,在日常操作中,相信很多人在vue项目proxyTable配置和部署服务器的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-30
  • Vue3.0 axios跨域请求代理服务器配置方式
    目录axios跨域请求代理服务器配置axios跨域问题解决1.在vue.config.js文件中做如下配置2.request.js(拦截器页面)如下配置3.具体请求页面如下配置axi...
    99+
    2022-11-13
  • vue如何使用反向代理解决跨域问题
    这篇文章主要讲解了“vue如何使用反向代理解决跨域问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何使用反向代理解决跨域问题”吧!为什么要解决跨域问题因为浏览器有限制,只有同域名同...
    99+
    2023-07-04
  • 解决vue项目中前后端交互的跨域问题、nginx代理配置方式
    目录vue前后端交互的跨域问题、nginx代理配置1.安装axios2.解决跨域问题前后端分离项目的跨域问题及解决跨域简述解决办法vue前后端交互的跨域问题、nginx代理配置 最近...
    99+
    2022-11-13
  • webpack-dev-server如何设置反向代理解决跨域问题
    这篇文章主要为大家展示了“webpack-dev-server如何设置反向代理解决跨域问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“webpack-dev-...
    99+
    2022-10-19
  • Vue脚手架如何配置代理服务器
    本文小编为大家详细介绍“Vue脚手架如何配置代理服务器”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue脚手架如何配置代理服务器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 前言注意:Vue脚手架给我们提...
    99+
    2023-07-04
  • vue配置代理vue.config.js后不生效如何解决
    本文小编为大家详细介绍“vue配置代理vue.config.js后不生效如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue配置代理vue.config.js后不生效如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-05
  • 如何理解DNS域名解析服务及其配置
    本篇文章给大家分享的是有关如何理解DNS域名解析服务及其配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、背景到 20 世纪 70 年代末,ARPAnet 是一个拥有几百台...
    99+
    2023-06-03
  • vue2 vue3 配置代理 服务器返回404- 500的解决思路
    返回500说明代理已经生效,和服务器已经了产生联系 失败的原因有以下几点: 一、服务器返回500拒绝请求 1,服务器的服务没有起来 2,vue本地的代理地址填写错误,可能代理到别家的服务器了 正确的写法如下:(主要体现在ip地址和端口是否错...
    99+
    2023-08-20
    vue.js 前端 服务器
  • 如何配置RHEL5 Squid透明代理服务器
    这篇文章主要介绍“如何配置RHEL5 Squid透明代理服务器”,在日常操作中,相信很多人在如何配置RHEL5 Squid透明代理服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何配置RHEL5 Squ...
    99+
    2023-06-10
  • 亚马逊云配置代理服务器连接失败怎么解决
    1. 检查代理服务器配置 首先,您需要检查您的代理服务器配置是否正确。请确保您已正确设置代理服务器的 IP 地址、端口号、用户名和密码等信息。如果您不确定这些信息,请联系您的网络管理员或代理服务器提供商以获取帮助。 2. 检查网络连接 如...
    99+
    2023-10-26
    亚马逊 代理服务器
  • 如何在Debian(kali)中配置代理(agent)服务器?
    开始搭建代理服务器 首先我参考如下文章进行搭建代理服务器,步骤每一个命令都执行过报了各种错,找了博客  目前尚未开始,我已经知道我的路很长,很难走呀,加油,go!go!go! 第一个教程: 第二个教程: Ubuntu/Debian/Cent...
    99+
    2023-09-07
    服务器 linux 网络
  • 香港云服务器代理如何选择配置
    香港云服务器代理选择配置的方法:1、根据网站程序选择操作系统,如网站是ASP程序,选择Windows系统;2、根据网站用户使用情况选择机房线路,如用户以电信为主,选择电信线路;3、根据网站流量选择CPU和内存,如网站流量较大,选择2核以上的...
    99+
    2022-10-10
  • 亚马逊云配置代理服务器连接失败的解决方法
    1. 检查网络连接 首先,确保你的网络连接正常。检查你的网络设置,确保你的设备已正确连接到互联网。你可以尝试连接其他网站或服务,以确认网络连接是否正常。 2. 检查代理服务器配置 如果你在亚马逊云上配置了代理服务器,确保你的配置正确。检查...
    99+
    2023-10-27
    亚马逊 解决方法 代理服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作