跨原点窗口控制

Cross Origin window control

本文关键字:控制 窗口 原点      更新时间:2023-09-26

我正试图通过我的web应用程序建立一个Google Plus登录,就像你可以通过一个oauth弹出窗口在foursquare.com上看到的那样。应用程序在控制台中显示以下错误。

Uncaught SecurityError:阻止了一个源为http://airus.com:3000的帧访问一个源为https://accounts.google.com的帧。请求访问的帧具有"http"协议,被访问的帧具有"https"协议。协议必须匹配。

<script type="text/javascript">
    var REDIRECT    =   'http://airus.com/users/auth/google_oauth2/callback';
    function login(url, x) {
        var win         =   window.open(url, "windowname1", 'width=400, height=600'); 
        var pollTimer   =   window.setInterval(function() { 
            console.log(win.document.URL);
            if (win.document.URL.indexOf(REDIRECT) != -1) {
                window.clearInterval(pollTimer);
                var url =   win.document.URL;
                win.close();
                x.reload();
            }
        }, 500);
    }
    $("#link").click(function(){
        x = location;
        login($(this).attr('href'), x);
        return false;
    })
</script>

你知道怎么解决吗?

错误信息实际上是正确的:

请求访问的帧协议为"http",被访问的帧协议为"https"。协议必须匹配。

所以你必须通过https (SSL,端口443)来服务你的站点。这样页面的url就变成https://airus.com (:443)