CORS 在 Nginx 上不起作用

CORS 在 Nginx 上不起作用

我需要我的应用程序与其他域上的后端 API 配合使用。我在 Ubuntu 16.04 上使用 nginx 1.12.1。

我在我的主机配置中添加了以下内容(到位置 ~.php$ 部分):

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';

重新加载 nginx 并使用以下 JS 进行测试:

var req = new XMLHttpRequest();
req.open('GET', 'http://api.mydomain.com/v1/client', false);
req.send(null);
var headers = req.getAllResponseHeaders();
console.log(headers);

控制台日志为:

内容类型:application/json;字符集=UTF-8

意思是 CORS 已启用,但没有收到其他 headers。如何获取其他 headers?

相关内容