简单了解跨域问题
什么是跨域?
跨域是浏览器基于同源策略的安全机制。
如何两个请求之间,域名,端口,协议三者中有任意一个不同,就会产生跨域问题。
跨域的解决方案
1. CORS(跨源资源共享)
后端通过设置响应头声明允许的跨域请求来源,是最规范的解决方案。
关键响应头:
-
Access-Control-Allow-Origin: *
(允许所有域)或具体域名(如http://a.com
) -
Access-Control-Allow-Methods: GET, POST
(允许的方法) -
Access-Control-Allow-Headers: Content-Type
(允许的请求头)
预检请求:对于复杂请求(如带自定义头或非简单方法),浏览器会先发送 OPTIONS
请求进行预检,需服务器正确处理。
2,代理服务器
通过同源的后端服务转发请求,绕过浏览器限制。
实现方式:
-
Nginx 反向代理:配置
nginx.conf
将/api
路径代理到目标服务器。 -
开发工具代理:如 Vue/React 项目可在
vue.config.js
或webpack.config.js
中配置代理。