VUE之proxy配置实现跨域

2023-09-13 20:48:43

什么是跨域

要了解跨域,首先得知道浏览器的同源策略。

同源策略:是由Netscape提出的一个安全策略,能够阻挡恶意文档,保护本地数据。它能限制一个源的文档或脚本对另一个源的交互,使得其它源的文档或脚本,无法读取或修改当前源。

是否同源:当两个url的域名、协议和端口均相同。

举例来说:url: http://127.0.0.1:80/demo/01.html 中组成部分如下图所示:

url是否同源原因

 http://127.0.0.1:80/demo/02.html 

 http://127.0.0.1:80/demo2/01.html 

同源协议、域名、端口均相同,只是文件地址不同
http://127.0.0.1:90/demo/01.html不同源端口不同
http://127.1.1.1:80/demo/01.html不同源域名不同
https://127.0.0.1:80/demo/01.html不同源协议不同
http://127.0.0.1/demo/01.html同源http:// 默认端口是 80

 

不同协议有不同的默认端口,当未指定端口时,则使用默认端口。

跨域:能实现在不同源之间的资源交互。

为什么要跨域:因为所有的资源有可能不在同一个域内,比如一个公司有很多子域,中间的通信就需要跨域。

vue项目跨域vue.config.js文件配置

1. publicPath配置

publicPath是部署时的基本url,一般情况下vue项目起什么名称,publicPath就赋值什么名称。

假设一个项目的初始地址为: http://127.0.0.1:80/,若是配置上publicPath: "/demo",则项目的初始地址则会变成http://127.0.0.1:80/demo/。

vue打包后的静态文件资源需要访问,所以需要一个文件路径放置vue的打包文件,后端nginx中对应配置的也是这个地址。

2. devServer.proxy代理配置

该字段主要是为了实现前后端通信的,当前后端分离开发,为了让前端开发人员在开发时访问到后端的接口,需要进行nginx配置实现跨域请求。

参考这个同学的文章:vue配置反向代理 devServer配置proxy,说明如下:

// vue.config.js文件
module.exports = {
//.....devServer: {host: 'localhost',port: 8080,proxy: {"/api": {target: "http://www.xxx.com", // 请求到/api/xx 就会被代理http://www.xxx.com/api/xxx//  secure: false, // 如果是https接口,需要配置这个参数changeOrigin: true, // 接口跨域 需打开这个参数pathRewrite: {'^/api': '', // 忽略前缀/api  则会被代理到http://www.xxx.com/xxx},}}},
}

 

其实很好理解,简单来说就是给实际的接口路径做了一层代理。

”/api”含义:匹配以”/api”开头接口,

target参数含义:默认将上面的"/api"拼接到该值的后面,映射成代理的实际路径。

举例:请求接口时如果写的是“/api/xxx”,使用代理后生成的实际请求路径就是’http://www.xxx.com/api/xxx’。

pathRewrite参数含义:路径重写,如果要请求的接口里面没有公共的api,直接从根目录开始的,那就需要把"/api"去掉或换成其它别的字符。

 

更多推荐

自动直播软件开发方案:打造智能化、高效化的直播体验

一、引言随着社交媒体和互联网的快速发展,直播已经成为了人们互动和传播的重要方式。然而,传统直播存在着人力成本高、内容质量不稳定等问题,因此,开发一款自动直软件成为了解决这些问题的关键。二、市场需求分析1.直播行业的快速增长:直播行业在近年来呈现出爆发式增长的趋势,用户对高质量、多样化的直播内容的需求日益增长。2.直播内

服务器的维护是如何操作的

服务器的维护是如何操作的服务器可以说是不可或缺的资源,因为现在网络技术发达,我们的生活也都离不开网络的存在,我们想要获取的业务、资料等大多是通过网络进行,所以想要顺应潮流并获得发展,肯定需要服务器来将企业的相关信息与产品等发布到网络中,供客户选择。那应该如何维护好服务器呢?硬件维护1、增加内存和硬盘容量的工作。增加内存

转行车载做开发,首先得掌握好Android Framework~

前言在当今社会,科技的快速发展推动了各行各业的变革。移动设备作为人们生活、工作、学习的重要工具,其市场份额逐年攀升。Android作为全球最受欢迎的移动操作系统之一,为开发者提供了广阔的发展空间。但是现在Android发展比较尴尬,之前想吃它红利的人群太多,加快了行业内卷的部分,致使现在Android人才市场饱,甚至可

压电换能器的工作原理和应用(功率放大器)

在日常生活中,可能会遇到很难测量的物理量,例如施加在金属上的机械应力、温度、压力水平等……对于所有这些应用,需要一种能够以我们熟悉的单位和校准来测量这些未知量的设备,而比较常用的设备是换能器。换能器是一种电气设备,可以将任何类型的物理量以成比例的电量形式转换为电压或电流。按照使用材电磁特性来划分,换能器主要有磁致伸缩和

得帆云“智改数转,非同帆响”-AIGC+低代码PaaS平台系列白皮书,正式发布!

5月16日下午,由上海得帆信息技术有限公司编写,上海市工业互联网协会指导的以“智改数转,非同帆响”为主题的《得帆云AIGC+低代码PaaS平台系列白皮书》正式在徐汇西岸国际人工智能中心发布。本次发布会受到了上海市徐汇区政府、各大媒体和业内专家的广泛关注。上海市工业互联网协会副秘书长王云、上海市徐汇区科委主任张宁、上海市

Spark【Spark SQL(四)UDF函数和UDAF函数】

UDF函数UDF是我们用户可以自定义的函数,我们通过SparkSession对象来调用udf的register(name:String,func(A1,A2,A3...))方法来注册一个我们自定义的函数。其中,name是我们自定义的函数名称,func是我们自定义的函数,它可以有很多个参数。通过UDF函数,我们可以针对某

MySQL学习6:索引

来源教学视频来源:黑马程序员MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括简介索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特点查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高价查找算法

mysql数据库基础

目录一、数据库基本概念1.数据:2.表:3.数据库:二、数据库管理系统:1、数据库管理系统介绍:2、数据库系统:3、DBMS工作模式:三、数据库分类:1、关系型数据库:2、关系型数据库的存储结构3、关系型数据库的优缺点:4、非关系型数据库4.1非关系型数据库的优点:4.2非关系型数据库的缺点:一、数据库基本概念1.数据

JavaScript-DOM实战案例

一、window定时器1.window定时器方法有时我们并不想立即执行一个函数,而是等待特定一段时间之后再执行,我们称之为“计划调用(schedulingacall)”。目前有两种方式可以实现:setTimeout允许我们将函数推迟到一段时间间隔之后再执行。setInterval允许我们重复运行一个函数,从一段时间间隔

如何通过百度SEO优化提升网站排名(掌握基础概念,实现有效优化)

随着互联网的发展,搜索引擎优化(SEO)成为了网站优化中不可或缺的一部分。在中国,百度搜索引擎占据着主导地位,因此掌握百度SEO概念和优化技巧对网站的排名和曝光非常重要。百度SEO排名的6个有效方法:首先是关键词研究。通过深入了解目标用户的搜索习惯和需求,选择合适的关键词并进行优化;其次是页面优化,蘑菇号https:/

初步了解华为的MTL(市场到线索)流程的基本概念和来龙去脉

前两天,有读者给华研荟发私信,说在学习华为资料的时候看到华为有一个MTL流程,想了解下这个MTL流程和LTC流程有什么区别?既然有了LTC流程,为什么还要MTL流程呢?为此,今天华研荟给大家简要介绍华为的MTL流程,也是非常重要的一个业务流程。如华研荟前面的文章中所提到的,华为认为一个企业运作的主业务主流程就三个:IP

热文推荐