我正在使用 Nginx 使用此问题中概述的技术来响应 CORS 请求来提供静态文件。但是,当文件不存在时,404 响应不包含Access-Control-Allow-Origin: *
标头,因此会被浏览器阻止。
如何发送Access-Control-Allow-Origin: *
404 响应?
我正在使用 Nginx 使用此问题中概述的技术来响应 CORS 请求来提供静态文件。但是,当文件不存在时,404 响应不包含Access-Control-Allow-Origin: *
标头,因此会被浏览器阻止。
如何发送Access-Control-Allow-Origin: *
404 响应?
尽管很久以前就有人问过这个问题,但我正在用更多模块编译 nginx,但是使用更新版本的 nginx,我发现我不必自定义编译 nginx,我需要的只是添加
always
指令。http://nginx.org/en/docs/http/ngx_http_headers_module.html
Syntax: add_header name value [always];
如果指定了 always 参数(1.7.5),则无论响应代码如何,都会添加标头字段。
所以CORS标头的调整版本:
我假设您当前正在使用
add_header
指令。文档指出,这仅为 200、204、301、302 和 304 状态代码设置标头。要为 404 状态代码设置标头,您需要使用headers_moremore_set_headers
模块中的指令(您可能需要重新编译 nginx 才能获取此模块)。以下将为所有状态代码设置标头:您还可以将其限制为特定的状态代码: