についての情報を取得しようとしています。は、私は次のコードを使用して、Googleの認証のためにAzureのモバイルアプリを使用して、認証されたユーザー
var url = client.applicationUrl + '/.auth/me';
fetch(url)
.then(function (data) {
return data.json()
}).then(function (user) {
// The user object contains the claims for the authenticated user
});
私は次のエラーを取得::私は行って関数内のコードを追加し、認証されたユーザーに関する情報を取得しようとする。しかし、クロスオリジン・リクエストに関連する
Fetch API cannot load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=3 … No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
このエラーを、それが解決することができます
- jsonp代わりにjsonを使用しますが、フェッチ機能がjsonpでどのように動作するかはわかりません。
- CORSを使用することをお勧めします。このCORSオプションは、Googleデベロッパーコンソールで有効にする必要があります。
私のWebアプリケーションとAzure Mobile Appは異なるドメインに配置されている可能性がありますが、両方のドメインをGoogle DeveloperコンソールのAuthorized JavaScript起点に追加しました。
Btw、上記のエラーはChromeで発生します。 Edgeを試すと、次のエラーが表示されます。
SCRIPT5022: ReferenceError: 'fetch' is undefined
Edgeはまだフェッチをサポートしていないため、
AzureではAzureモバイルサービスからAzure Mobile Appsに移行しました。私はAzure Mobile Appsを使用しています。ドメインをCORSオプションに追加しましたが、*を追加しましたが、おそらくCORSをサーバー部分で有効にし、https://accounts.google.comでこの役割を果たす必要があるためです。 – Alexan