Google OAuth2を実装しようとしています。https://github.com/google/google-api-nodejs-client#authorizing-and-authenticatingを参考にしてください。私は、ブラウザのコンソールでこのエラーを取得し、このGoogle OAuth2:CORSポリシーでリダイレクトがブロックされました:リクエストにはプリフライトが必要です。クロスオリジンリダイレクトに従うことはできません。
var url = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: some_scope
});
res.redirect(url);
のようなページを同意するようにユーザーをリダイレクトする場合(リンク編集):8080/myPageName:
XMLHttpRequestがローカルホストをロードすることはできません。 localhost:8080/myPageNameからaccounts.google.com/o/oauth2/auth?access_type = ...へのリダイレクトはCORSポリシーによってブロックされました:リクエストにはプリフライトが必要ですが、クロスオリジンのリダイレクトは許可されていません。
奇妙なことは、GUIからのフローを実行するときだけ(ユーザーがボタンを押す、angular2フロントエンド)、このエラーが発生しているということです。 localhost:8080/myPageNameをブラウザのアドレスバーに直接入力すると、すべてがうまく動作します(同意したフォームとトークンを取得します)。
何か助けていただければ幸いです。ありがとうございました。
私は同じ問題を抱えています:(Java Springアプリケーションからやっていますが、同じ動作をしています)パスを直接入力すると、アカウントなどのプロンプトが表示されます。 – trojanc
http://stackoverflow.com/この問題を回避する方法の詳細については、質問/ 34949492/cors-request-with-preflight-and-redirect-disallowed-workarounds/39728229#39728229を参照してください。仕様の変更に合わせて実装を更新します。 – sideshowbarker