我需要我的应用程序与其他域上的后端 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?