Nginx跨域配置:为什么状态码非200时无法添加头部?

nginx跨域配置:为什么状态码非200时无法添加头部?

Nginx跨域设置:解决非200状态码下无法添加响应头的难题

在进行跨域资源共享(CORS)配置时,经常需要使用Nginx添加响应头信息。然而,一些用户发现,只有当状态码为200时,才能成功添加响应头,而其他状态码下则无法生效。

问题分析

该问题通常源于Nginx的add_header指令缺少always选项。

解决方案

为了确保无论状态码为何值,都能正确添加跨域响应头,需要在add_header指令中添加always选项。 正确的Nginx配置如下:

add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header Access-Control-Allow-Headers '*' always;
登录后复制

always选项的意义

always选项指示Nginx始终添加指定的响应头,而不会根据状态码进行条件判断。 这样,即使出现错误状态码(例如404或500),跨域响应头也能被正确添加到响应中。

以上就是Nginx跨域配置:为什么状态码非200时无法添加头部?的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/1231429.html

发表回复

Your email address will not be published. Required fields are marked *