使用nginx代理或者服务器配置cors
时间: 2023-09-13 21:11:04 浏览: 109
打破壁垒:Nginx中跨域资源共享(CORS)配置全指南
回答: 在使用nginx代理或者服务器配置CORS时,可以通过在nginx配置文件中添加相关header来解决跨域访问的问题。一般情况下,配置以下header可以解决简单请求的跨域处理:设置Access-Control-Allow-Origin字段为请求的来源,设置Access-Control-Allow-Methods字段为允许的请求方法,设置Access-Control-Allow-Credentials字段为true以允许发送Cookie到服务器。此外,还可以设置Access-Control-Allow-Headers字段来指定允许的请求头,设置Access-Control-Max-Age字段来指定预检请求的有效期。在nginx的标准配置中,可以使用类似以下的配置来实现CORS:\[3\]
```
server {
...
set $cors_origin "";
if ($http_origin ~* "^http://api.xx.com$"){
set $cors_origin $http_origin;
}
add_header Access-Control-Allow-Origin $cors_origin always;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token always;
add_header Access-Control-Max-Age 1728000 always;
if ($request_method = OPTIONS) {
return 204;
}
...
}
```
通过以上配置,可以实现对CORS的处理,并解决跨域访问的问题。
#### 引用[.reference_title]
- *1* *2* *3* [Nginx 跨域设置(CORS)](https://blog.csdn.net/yujia_666/article/details/108490178)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文