使用 nginx 反向代理的 Access-Control-Allow-Origin

使用 nginx 反向代理的 Access-Control-Allow-Origin

我有一台使用 nginx 作为反向代理的服务器,它将对 foo.example.com 的请求传递到 10.0.0.210,端口 80 转发工作正常,但我还需要转发端口 9292 以用于 javascript 消息服务。

我的 9292 服务器的 server{} 条目是:

server{
    listen 9292;
    server_name foo.example.com;
    location / {
            add_header Access-Control-Allow-Origin http://foo.example.com;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://10.0.0.210:9292;
    }
}

但是当我进入该应用程序时,我的 chrome 控制台出现此错误:

Unexpected response code: 400 

然后出现大量此错误:

XMLHttpRequest cannot load http://foo.example.com:9292/faye. Origin http://foo.example.com is not allowed by Access-Control-Allow-Origin.

它能够从服务器请求初始 JavaScripthttp://foo.example.com:9292/faye.js但之后我就收到这个错误。

我读到的所有内容都表明这应该可以正常工作,那么我遗漏了什么?

答案1

经过一番调整后,我成功解决了 Access-Control-Allow-Origin 问题,但出现意外响应代码:400 是因为 Web 套接字还不能通过反向代理工作。

看:https://github.com/faye/faye/issues/24#issuecomment-391508

相关内容