有任何模块可以处理 nginx 中的 HTTP OPTIONS 请求吗?

有任何模块可以处理 nginx 中的 HTTP OPTIONS 请求吗?

我在 Ubuntu 12.04 上使用 nginx,是否有任何我可以通过包管理器安装的模块,使 nginx 神奇地支持 HTTP OPTIONS 标头请求而不是返回 HTTP 405?如果有帮助的话,我想避免额外的编译步骤。

答案1

我仍然想要一个真实的解决这个问题,但目前我发现我正在使用以下解决方案:

地点 / {
    如果 ($request_method = OPTIONS ) {
        添加标题内容长度0;
        添加标题内容类型文本/纯文本;
        添加标头访问控制允许来源*;
        add_header Access-Control-Allow-Headers'来源,x-requested-with,内容类型,接受';
        添加标头访问控制允许方法'GET,POST';
        返回200;
    }
}

我允许所有 CORS 请求这是我的本地主机,但请注意,这是为了您自己的安全,因此不要太过宽容Access-Control-Allow-Origin

此外,我正在使用 angularjs,POST即使请求OPTIONS已获得适当的权限,请求也会被取消。不知道整个预检过程有什么意义。无论如何,在位置块外添加访问控制行解决了这个问题。像这样:

地点 / {
                try_files $uri $uri/ /index.php?$query_string;
                如果 ($request_method = OPTIONS ) {
                        添加标题内容长度0;
                        添加标题内容类型文本/纯文本;
                        添加标头访问控制允许来源*;
                        add_header Access-Control-Allow-Headers'来源,x-requested-with,内容类型,接受';
                        添加标头访问控制允许方法'GET,POST';
                        返回200;
                }
        }

        添加标头访问控制允许来源*;
        add_header Access-Control-Allow-Headers'来源,x-requested-with,内容类型,接受';
        添加标头访问控制允许方法'GET,POST';

相关内容