api.mysite.com
でホストされているAPIと、client.mysite.com
でホストされているクライアントがあります。今クライアントから私は得る
XMLHttpRequestは
http://api.mysite.com/settings/find
を読み込めません。 Originhttp://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にアクセスすると、上記のエラーが発生します。ご覧のとおり、関連するヘッダーを仮想ホストに追加しましたが、それでもエラーが発生します。何かアイデアは何が悪いのですか?
私自身の問題を解決しました。交換済み
add_header
と
proxy_set_header
:)