クロスドメインAjax呼び出しを行うことは許可されていないことを理解していますが、Facebook(またはTwitterなど)のoauth APIに対してクロスドメインajax呼び出しを行うことができるのはなぜですか?
これは次のことと関係がありますか?
"Access-Control-Allow-Origin: *"
この悪い習慣のようにすべてのアクセスを許可していますか?あなたが許可した人だけを許可するより良い方法はありますか?
ありがとう!
Access-Control-Allow-Origin応答ヘッダーフィールドはクロスオリジンリソースシェアリングの一部であり、リクエストの送信先のサーバーによって制御できる特定の条件下で、XHRとのクロスオリジンリクエストを許可します。
この特定のケースでAccess-Control-Allow-Origin: *
は、サーバーが任意の発信元からのリクエストを許可することを意味します。これは基本的に、リソースが公開されており、資格情報をサポートしていないことを意味します。
ただし、アクセスを許可されたユーザーのみに制限したいので、を使用することはできません*
。Origin
代わりに、ヘッダーフィールド値を返す必要があります(セクション6.1を参照)。クライアントがすでに資格情報を持っているが、まだリソースを要求していない場合は、クライアントが送信を許可されている情報をネゴシエートするプリフライト要求もサポートする必要があります。