当前位置:首页 > nginx > 正文

正确的nginx跨域配置(nginx解决跨域的三种方式)

  • nginx
  • 2024-03-26 07:53:04
  • 9437
正确的 Nginx 跨域配置
要素:
1. 添加 Access-Control-Allow-Origin 响应头
指示允许从哪个源访问资源。 可以是一个特定的域名、通配符 (允许所有来源)或一个列表。
add_header Access-Control-Allow-Origin [origin domain];
2. 设置 Access-Control-Allow-Credentials
指示是否允许跨域请求包含凭据(如 cookie)。
add_header Access-Control-Allow-Credentials true;
3. 指定 Access-Control-Allow-Methods
列出允许用于跨域请求的 HTTP 方法。
add_header Access-Control-Allow-Methods GET, POST, PUT, DELETE, OPTIONS;
4. 设置 Access-Control-Allow-Headers
指定允许在跨域请求中发送的请求头。
add_header Access-Control-Allow-Headers Content-Type, Authorization;
5. 配置预检请求选项(仅限预检请求)
对于需要预检请求的请求(例如涉及 PUT、DELETE 或自定义 HTTP 方法的请求),Nginx 需要配置额外的选项:
Access-Control-Max-Age:预检请求的缓存时间(以秒为单位)。
Access-Control-Allow-Headers:允许在预检请求中发送的请求头。
location /some-api {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin [origin domain];
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Allow-Headers Content-Type, Authorization;
add_header Access-Control-Allow-Methods GET, POST, PUT, DELETE, OPTIONS;
return 204;
}
}