0

私はかなり長い間これを修正しようとしてきました.別のドメインにあるため、ウィンドウのURLにアクセスできません..いくつかの解決策はありますか?

function login() {
        var cb = window.open(_url, "windowname1", 'width=800, height=600'); 

        var pollTimer   =   window.setInterval(function() { 
            if (cb.document.url.indexOf(REDIRECT) >= 0) {
                window.clearInterval(pollTimer);
                var url =   cb.document.url;
                acToken =   gup(url, 'access_token');
                tokenType = gup(url, 'token_type');
                expiresIn = gup(url, 'expires_in');
                cb.close();

                validateToken(acToken);
            }
        }, 100);
    }
4

3 に答える 3

2

私はIE9で同じ問題を抱えていましたが、解決策を見つけました:try{} catch{}を追加し、pollTimerが与える時間を増やします:

    function login() {
    var cb = window.open(_url, "windowname1", 'width=800, height=600'); 

    var pollTimer   =   window.setInterval(function() { 
        try {
            if (cb.document.url.indexOf(REDIRECT) >= 0) {
                window.clearInterval(pollTimer);
                var url =   cb.document.url;
                acToken =   gup(url, 'access_token');
                tokenType = gup(url, 'token_type');
                expiresIn = gup(url, 'expires_in');
                cb.close();

                validateToken(acToken);
            }
        } catch (e) {
        }
    }, 500);
}
于 2012-11-13T14:40:49.770 に答える
0

いいえ、クロスドメインポリシーハイジャックの解決策はありません。ここにmozilla開発者からの簡単な概要があります。

他のドメインのプロパティとどう関係しているのかを正確に説明すると、document.url誰かが回避策を見つけた可能性があります。

于 2012-05-18T14:53:14.407 に答える
0

_url の内容を制御できますか?

その場合、javascript を介してコンテンツを返してからdocument.write、それを参照して現在のページに含めることができます。<script type="text/javascript" src="_url" />

この後、好きなように DOM を介して _url のコンテンツにアクセスできます。

于 2012-11-13T14:47:36.030 に答える