如enable-cors.org所示,我有一个Nginx具有广泛开放的内核。我可以在GET
请求中看到以下内容
Access-Control-Allow-Origin: http://localhost:3000
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
Access-Control-Allow-Headers: Authorization,If-Modified-Since,Cache-Control,Content-Type,Accept
Access-Control-Expose-Headers: Content-Length,Content-Range
但是,当我尝试使用具有POST
值的chrome浏览器时,出现了这样的错误;
从源访问“ http://0.0.0.0/user”处的XMLHttpRequest “ http://localhost:3000”已被CORS政策禁止:否 请求中存在“ Access-Control-Allow-Origin”标头 资源。
我正在尝试从POST
请求的响应中获取标头授权
答案 0 :(得分:0)
这是我修复它的方式。
在Hapi服务器块中启用CORS
const server = Hapi.Server({
debug: { request: ["error"] },
port: process.env.APP_PORT,
host: process.env.APP_SERVER,
routes: {
cors: true
}
});
在Nginx
中创建反向代理
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-User $remote_user;
proxy_set_header X-Real-IP $remote_addr;
观看表头
您会看到一条错误消息,提示标题
使用Access-Control-Allow-Origin
配置隐藏Hapi中的nginx
proxy_hide_header Access-Control-Allow-Origin;
在Hapi服务器块中使用以下值设法使它在没有nginx
的情况下工作
cors: {
origin: "ignore",
additionalHeaders: ["Authorization"],
additionalExposedHeaders: ["Authorization"]
},