Nginx如何启用CORS?
时间: 2024-09-07 16:05:27 浏览: 28
在Nginx中启用CORS(Cross-Origin Resource Sharing,跨源资源共享)主要是通过设置响应头部的几个关键字段来完成的。以下是如何在一个简单的location块中启用CORS的基本配置步骤:
1. 首先,在`http`块或者你希望应用跨域规则的server块中,添加`add_header`指令来设置允许的源和请求方法:
```nginx
add_header 'Access-Control-Allow-Origin' '*'; # 允许任意源
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # 允许GET和POST请求
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type'; # 允许特定的头部信息
# 如果处理的是预检请求(OPTIONS),可以这样处理:
add_header 'Access-Control-Allow-Credentials' 'true'; # 允许发送cookies
add_header 'Access-Control-Max-Age' 1728000; # 设置最长缓存时间为2周
```
2. 对于OPTIONS请求,由于它是浏览器发起的CORS请求的前奏,确认服务器是否接受该类型的请求,可以在location块中特别处理:
```nginx
location ~^/api/ { # 将路径替换为你实际的API路径
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Allow' $method;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204; # 返回204表示成功,无内容
}
# 这里处理正常的API请求
}
```
记住,这只是一个基础设置,根据你的需求,可能还需要调整允许的来源、特定的请求头等。同时,务必小心,因为过于宽松的CORS策略可能会带来安全风险。