📅  最后修改于: 2023-12-03 15:15:32.912000             🧑  作者: Mango
当浏览器从一个域名向另一个域名请求资源时,会发起跨域请求。浏览器会向服务器发送一个OPTIONS请求,获取服务器是否允许跨域访问,如果服务器返回了正确的响应头,那么浏览器才会继续请求。其中一个必须要设置的响应头就是Access-Control-Allow-Origin
。
Access-Control-Allow-Origin
是一种 HTTP 响应头,它允许客户端(浏览器)请求来自不同域的服务器上的资源。当跨域请求发生时,服务器会检查请求头中的Origin
字段,并与已设置的Access-Control-Allow-Origin
进行比较,如果匹配,则浏览器才会继续处理响应结果。
通过在.htaccess
文件中设置Access-Control-Allow-Origin
来解决跨域问题。
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</ifModule>
以上代码会设置Access-Control-Allow-Origin
为*
,表示允许所有域名跨域请求该资源。如果需要限制域名,可以将*
替换为指定域名。例如,如果只允许example.com
跨域请求,可以这样写:
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://example.com"
</ifModule>
Access-Control-Allow-Origin
需要设置在响应头中,不能在请求头中设置。Access-Control-Allow-Origin
会存在安全风险,需要仔细考虑哪些域名可以跨域请求该资源。