type
status
date
slug
summary
tags
category
icon
password
HTTP重定向
HTTP重定向是一种服务器响应客户端请求的方式,它告诉客户端去访问另一个URL。当服务器发送一个重定向响应时,它会返回一个特定的状态码(如301或302),并在响应头中包含
Location
字段,指示新的URL位置。客户端收到这个响应后,通常会自动发起对新URL的请求。port: 4514:
- 指定了开发服务器的端口号为
4514
。当你启动开发服务器时,项目会在http://localhost:4514
或https://localhost:4514
运行。
proxy: {}:
- proxy 是一个代理选项,用于将本地请求转发到其他服务器,通常用于开发时避免跨域问题。
- 通过这些代理配置,当客户端请求这些路径时,开发服务器会把请求转发到相应的目标服务器(即
target
所定义的服务器)。
changeOrigin: true:
- 代理服务器会将
Host
头修改为目标服务器的地址,以确保请求正确地被目标服务器处理。
代理服务器解决跨域问题:
- 在本地开发环境中,前端代码可能运行在
localhost
(例如,http://localhost:4514
)。如果这段前端代码要请求一个外部 API(例如,https://dekt.bupt.edu.cn/api
),直接请求会触发浏览器的同源策略,从而被阻止。
- 设置代理服务器:
- 前端并不直接请求外部 API,而是先向本地开发服务器(如
localhost:4514
)发送请求。 - 代理服务器接收到前端的请求后,会将这个请求转发到实际的目标服务器(如
https://dekt.bupt.edu.cn/api
)。代理服务器充当一个中间人,它和外部服务器通信,而浏览器看到的只是和本地开发服务器通信,因此没有跨域限制。
- 当 changeOrigin 设置为
true
时,代理服务器在转发请求时会修改请求头中的Host
字段。目标服务器(如https://dekt.bupt.edu.cn
)会看到请求的Host
为它自己的域名,从而认为这是一个直接发给它的请求。
- 结果:请求看起来像是直接从目标服务器自身发来的,而不是从另一个源(
localhost:4514
)发来的。因此,目标服务器不会触发同源策略的检查,也不需要额外处理 CORS 请求。
通过这种代理,浏览器只与本地服务器交互,不触发跨域限制,同时通过修改
Host
,让远程服务器正确处理请求,避免 CORS 配置复杂化。- Author:orangec
- URL:orange’s blog | welcome to my blog (clovy.top)/article/8db4210e-16b1-4db5-b400-5b560bd1b92e
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!