如何设置Nginx add_header always确保非2xx状态码下跨域Header始终有效?

2026-04-29 01:501阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计911个文字,预计阅读时间需要4分钟。

如何设置Nginx add_header always确保非2xx状态码下跨域Header始终有效?

直接输出结论:

为什么 4xx/5xx 响应里看不到跨域 Header

Nginx 的 add_header 指令默认仅作用于成功响应(即 HTTP 状态码为 2xx),这是设计行为,不是 bug。比如后端返回 401 Unauthorized500 Internal Server Error,即使你配了 add_header Access-Control-Allow-Origin $http_origin,这些头也不会出现在响应里——浏览器收不到声明,就会拦截响应并抛出 CORS 错误,而不是把原始错误信息交给你。

add\_header always 是什么,怎么加

alwaysadd_header 的可选参数,告诉 Nginx:不管响应状态码是多少,都强制添加这个响应头。它从 Nginx 1.7.5 开始支持,老版本(如 1.4.3)不识别该参数,会直接报配置错误。

阅读全文

本文共计911个文字,预计阅读时间需要4分钟。

如何设置Nginx add_header always确保非2xx状态码下跨域Header始终有效?

直接输出结论:

为什么 4xx/5xx 响应里看不到跨域 Header

Nginx 的 add_header 指令默认仅作用于成功响应(即 HTTP 状态码为 2xx),这是设计行为,不是 bug。比如后端返回 401 Unauthorized500 Internal Server Error,即使你配了 add_header Access-Control-Allow-Origin $http_origin,这些头也不会出现在响应里——浏览器收不到声明,就会拦截响应并抛出 CORS 错误,而不是把原始错误信息交给你。

add\_header always 是什么,怎么加

alwaysadd_header 的可选参数,告诉 Nginx:不管响应状态码是多少,都强制添加这个响应头。它从 Nginx 1.7.5 开始支持,老版本(如 1.4.3)不识别该参数,会直接报配置错误。

阅读全文