web-dev-qa-db-ja.com

Node.js + NginxAccess-Control-Allow-Originが機能しない

api.mysite.comでホストされているAPIと、client.mysite.comでホストされているクライアントがあります。今クライアントから私は得る

XMLHttpRequestはhttp://api.mysite.com/settings/findを読み込めません。 Origin http://client.mysite.comは、Access-Control-Allow-Originでは許可されていません。

APIはnode.js(sailsjsフレームワーク)上に構築され、クライアントはangular.js上に構築されます。ウェブサーバーはnginxマシンです。私の仮想ホスト設定:

server {
    listen 0.0.0.0:80;
    server_name api.mysite.com;

    location / {
        add_header 'Access-Control-Allow-Origin' 'http://api.mysite.com';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
        add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin';

        proxy_pass         http://127.0.0.1:1337/;
        proxy_redirect     off;

        proxy_set_header   Host             $Host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

したがって、ブラウザーではAPIに非常によくアクセスできますが、クライアントからAPIにアクセスすると、上記のエラーが発生します。ご覧のとおり、関連するヘッダーを仮想ホストに追加しましたが、それでもエラーが発生します。何かアイデアは何が悪いのですか?

2
Lost in OWL

私自身の問題を解決しました。交換済み

add_header

proxy_set_header

:)

1
Lost in OWL