0

についての情報を取得しようとしています。は、私は次のコードを使用して、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.

このエラーを、それが解決することができます

  1. jsonp代わりにjsonを使用しますが、フェッチ機能がjsonpでどのように動作するかはわかりません。
  2. CORSを使用することをお勧めします。このCORSオプションは、Googleデベロッパーコンソールで有効にする必要があります。

私のWebアプリケーションとAzure Mobile Appは異なるドメインに配置されている可能性がありますが、両方のドメインをGoogle DeveloperコンソールのAuthorized JavaScript起点に追加しました。

Btw、上記のエラーはChromeで発生します。 Edgeを試すと、次のエラーが表示されます。

SCRIPT5022: ReferenceError: 'fetch' is undefined

Edgeはまだフェッチをサポートしていないため、

答えて

0

私はあなたのAzureモバイルサービスへfound here.また

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
     </customHeaders> 
    </httpProtocol> 
    </system.webServer> 

を、以下の設定を適用する推薦するこのpost hereで説明したように、それはバグである可能性があります。

+0

AzureではAzureモバイルサービスからAzure Mobile Appsに移行しました。私はAzure Mobile Appsを使用しています。ドメインをCORSオプションに追加しましたが、*を追加しましたが、おそらくCORSをサーバー部分で有効にし、https://accounts.google.comでこの役割を果たす必要があるためです。 – Alexan

関連する問題