2013-01-11 7 views
7

次のコードはChromeを使用して正しく動作しますが(ユーザーが地図と場所のデータにアクセスする許可を要求するポップアップが表示されます)、IE 9はポップアップフォームを開きます空の; handleAuthClickメソッドを呼び出すときsetTimeoutsを追加しようとしましたが効果がありません。ポップアップが許可されていることを確認し、ChromeとIEで同じポップアップページのURLを確認しました。誰もこの問題に遭遇しましたか?あるいは、誰かが回避策を提供することができますか?Google oauth2 javascriptクライアントがIE 9で動作しない

var clientId = '############.apps.googleusercontent.com'; 
var apiKey = '#A#A#A#A##'; 
var scopes = 'https://www.googleapis.com/auth/plus.me'; 

function handleClientLoad() { 
    gapi.client.setApiKey(apiKey); 
    window.setTimeout(checkAuth, 1); 
} 

function checkAuth() { 
    gapi.auth.authorize({ client_id: clientId, scope: scopes, immediate: true }, handleAuthResult); 
} 

function handleAuthResult(authResult) { 
    if (authResult && !authResult.error) { 
     makeApiCall(); 
    } else { 
    } 
} 

function handleAuthClick(event) { 
    try { 
     window.setTimeout(function() { 
      gapi.auth.authorize({ client_id: clientId, scope: scopes, immediate: false }, handleAuthResult); 
     }, 10); 
    } catch (e) { alert(e.message); } 
} 
function makeApiCall() { 
    gapi.client.load('plus', 'v1', function() { 
     var request = gapi.client.plus.people.get({ 
      'userId': 'me' 
     }); 
     request.execute(function (resp) { 
      $(".google-signin").find("img").attr('src', resp.image.url).css('height', '32').css('width', '32'); 
      $("#login-msg").text('Welcome: ' + resp.displayName); 
      $("img.vote").css('visibility', 'visible'); 

     }); 
    }); 
} 

答えて

1

この問題を解決する方法は、setTimeoutの期間を10秒から10秒に延長することでした。Googleの認証ポップアップは、空白の画面ではなく、正しい歌い込み情報で表示されました。

+1

私は同じ問題を抱えていますが、この解決法は役に立ちませんでした。私はまだ本当の情報の代わりに空白のポップアップを得ています... – ronen

+0

ポップアップウィンドウは有効になっていますか? (Googleが解決策を提示していないのは残念である)。 –

+1

はい。ポップアップはブラウザで許可されます。ポップアップが表示されますが、空のコンテンツが表示されます。 – ronen

0

マップは/あなたが使用している範囲は、非推奨のGoogleマップデータAPIのためには、あなたの実際の質問についてPlaces API

と同じものではありませんこれは、私は場所を交換するために再タグ付けしていますフィードことに注意してくださいAPIはPlus APIを使用しているため、ここで使用しています。

+0

google +を除くすべてのスコープを削除しましたが、IE(8/9)はまだ協力していません。 –

1

クライアントのWebアプリケーションとGoogleの間のクロスオリジンスクリプトがゾーンセキュリティによってブロックされている可能性があります。

その両方google.com、スクリプトが同じセキュリティゾーンに秋を実行しているWebページを確認してください(通常は、インターネットゾーン。)あなたがわからない場合は、確認してください。またserverfaultの#612903 https://serverfault.com/questions/612903/ie11-how-to-check-into-which-zone-a-url-falls

を見ますウェブアプリケーションとGoogleが分類されているゾーンは、スクリプトの実行を許可し、google.comに第三者のCookieアクセスを許可するように設定されているため、承認を確認するために使用されます。

+1

徹底的な応答をいただきありがとうございます。 GoogleがOAuthを必要とする機能を廃止したことが判明したので、この問題は無音であり、 –

関連する問題