nginx禁掉Access-Control-Allow-Origin
时间: 2023-10-30 18:08:03 浏览: 143
可以通过在Nginx配置文件中添加以下代码来禁用Access-Control-Allow-Origin:
```
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
```
这段代码将在OPTIONS请求中添加Access-Control-Allow-Origin头,并将其设置为*,这将禁用跨域请求。
相关问题
nginx解决Misconfigured Access-Control-Allow-Origin Header
以下是解决Misconfigured Access-Control-Allow-Origin Header的Nginx配置示例:
```shell
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
}
```
这个配置将允许所有的请求源(Origin)跨域访问服务器。`Access-Control-Allow-Origin *`表示服务器可以接受所有的请求源。`Access-Control-Allow-Methods`和`Access-Control-Allow-Headers`分别指定了服务器允许的请求方法和请求头。
如果请求方法是OPTIONS,服务器将返回204状态码,表示接受预检请求。这是因为在跨域请求中,浏览器会先发送一个OPTIONS请求,以确定服务器是否允许跨域访问。
请注意,这只是一个示例配置,你可以根据自己的需求进行修改和扩展。
如何在nginx里配置access-control-allow-origin
在nginx中配置access-control-allow-origin可以通过添加HTTP响应头来实现。可以使用add_header指令来添加HTTP响应头,例如:
```
add_header 'Access-Control-Allow-Origin' '*';
```
这将在HTTP响应头中添加Access-Control-Allow-Origin字段,并将其值设置为*,表示允许所有来源访问资源。如果需要允许特定来源访问资源,可以将*替换为特定的来源地址。此外,还可以使用add_header指令添加其他Access-Control-*字段,例如Access-Control-Allow-Methods和Access-Control-Allow-Credentials等。
如果静态文件访问不到,报No 'Access-Control-Allow-Origin' header is present on the requested resource处理办法是在nginx配置文件中添加如下代码:
```
location /static/ {
add_header 'Access-Control-Allow-Origin' '*';
}
```
这将在/static/目录下的所有静态文件请求中添加Access-Control-Allow-Origin字段,并将其值设置为*,表示允许所有来源访问资源。
阅读全文