0

您好,我刚开始使用 javascript 学习 gplus-api 登录,但我遇到了一个错误,提示“在 'DOMWindow' 上执行 'postMessage' 失败:提供的目标来源 ('file://') 与收件人窗口的来源不匹配('无效的')。 这是我的代码,我参考了这个网站,但没有帮助我!https://developers.google.com/+/web/signin/javascript-flow

我的代码

<!DOCTYPE HTML>
 <html>
   <head></head>
 <body>
    <script src="https://apis.google.com/js/client:platform.js" async defer></script>

    <meta name="google-signin-clientid" content="MY_CLIENT_ID.apps.googleusercontent.com">
    <meta name="google-signin-scope" content="https://www.googleapis.com/auth/plus.login" />
    <meta name="google-signin-requestvisibleactions" content="http://schema.org/AddAction" />
    <meta name="google-signin-cookiepolicy" content="single_host_origin" />

  <script type="text/javascript">
    (function(){
      var po = document.createElement('script');
      po.type = "text/javascript";
      po.async = true;
      po.src = "https://apis.google.com/js/client:plusone.js";
      var s = document.getElementByTagName('script');
      s.parentNode.insertBefore(po,s);
  });

 function render() {

  // Additional params including the callback, the rest of the params will
  // come from the page-level configuration.
   var additionalParams = {
     'callback': signinCallback
  };

  // Attach a click listener to a button to trigger the flow.
   var signinButton = document.getElementById('signinButton');
   signinButton.addEventListener('click', function() {
       gapi.auth.signIn(additionalParams); // Will use page level configuration
    });
 }

  function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
   // Update the app to reflect a signed in user
   // Hide the sign-in button now that the user is authorized, for   example:
      document.getElementById('signinButton').setAttribute('style',             'display: none');
    } else {
    // Update the app to reflect a signed out user
    // Possible error values:
   //   "user_signed_out" - User is signed-out
   //   "access_denied" - User denied access to your app
   //   "immediate_failed" - Could not automatically log in the user
   console.log('Sign-in state: ' + authResult['error']);
   }
  }
 </script>
  <button id="signinButton">Sign in with Google</button>
  </body>
  </html>

我的 js 来源是http://localhost:8080,当我尝试加载这个 url 时它给了我 404 错误 请帮助解决我这个错误!

4

1 回答 1

0

使用 Google+ 登录时,您必须运行 Web 服务器(甚至在本地)。一个简单的示例是运行 Python 并将端口设置为 8080:

python -m SimpleHTTPServer 8080

您还可以配置/运行 Apache 或其他服务器以进行本地测试。

于 2015-02-03T00:42:22.743 回答