方案一
隐藏某个请求头后再加上。检查特定的 HTTP 响应是否在 Nginx 的 location 块中包含 "Access-Control-Allow-Origin" 头部,可以使用 proxy_hide_header 指令来隐藏响应中的头部,若隐藏后再加上可以实现去重的效果。
以下是实现此操作的方法:
1、打开 Nginx 配置文件:
打开特定站点或服务器块的 Nginx 配置文件,您想要检查和修改头部的地方。
2、定位 Location 块:
在配置文件中,找到您想要检查 HTTP 响应头部的 location 块。
3、隐藏头部,同时加上头部,实现去重的效果:
在特定的 location 块中添加 proxy_hide_header 指令来隐藏 "Access-Control-Allow-Origin" 头部。该指令会在将响应发送到客户端之前从响应中删除指定的头部。例如:
location /your-location { proxy_hide_header Access-Control-Allow-Origin; add_header Access-Control-Allow-Origin "*"; // do something }
4、重新加载 Nginx:
保存配置文件并重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
在 location 块中使用 proxy_hide_header 指令后,Nginx 将从该特定位置的 HTTP 响应中删除 "Access-Control-Allow-Origin" 头部。这使您可以检查响应中是否存在头部,或根据需要进行操作,若是需要去重,则可以删除后再加上。
方案二
使用 $sent_http_access_control_allow_origin 来检查是否包含请求头,若包含则跳过,没有则手动加上
location /your-location { if ($sent_http_access_control_allow_origin) { # Do something when the header is present } }
在这个例子中:
- $sent_http_access_control_allow_origin 从 HTTP 响应中检索 "Access-Control-Allow-Origin" 头部的值。
- "if" 指令检查 $sent_http_access_control_allow_origin 的值是否不为空或评估为真。
- 如果头部存在(即其值不为空),则将执行 "if" 块中指定的操作。
通过这种方式使用 "if" 指令,您可以直接检查在指定的 location 块中 HTTP 响应中是否存在 "Access-Control-Allow-Origin" 头部,并根据其是否存在执行条件操作。然而,重要的是要注意,在 Nginx 中使用 "if" 块时应谨慎,以避免与性能和行为相关的潜在问题,因为 "if" 块具有某些限制,在某些情况下可能会影响性能。
标签:Origin,Control,请求,重复,Access,Nginx,location,头部 From: https://www.cnblogs.com/lyc94620/p/18109352