2014-06-10 60 views
0

在尝试使用Firebase实施简单的登录身份验证(电子邮件/密码)时,我在浏览器中收到CORS错误。使用Firebase创建用户时发生未知错误

我检查了安全规则,并将其设置为

{ 
"rules": { 
".read": true, 
".write": true 
} 
} 

下面是来自例子我的代码的摘要。

<script src="https://cdn.firebase.com/js/client/1.0.15/firebase.js"></script> 
<script type='text/javascript' src='https://cdn.firebase.com/js/simple-login/1.5.0/firebase-simple-login.js'> </script> 


var myRootRef = new Firebase('https://vivid-fire-myserver.firebaseio.com/'); 
var authClient = new FirebaseSimpleLogin(myRootRef, function(error, user) { 
    if (error) { 
     alert(error); 
     return; 
    } 
    if (user) { 
     alert('user already logged in'); 
    } else { 
     alert('user logged out'); 
    } 
}); 

$("#registerButton").on("click", function() { 
    var email = $("#email").val(); 
    var password = $("#password").val(); 
    authClient.createUser(email, password, function(error, user) { 
     if (!error) { 
      alert('registered successfully'); 
     } else { 
      alert(error); 
     } 
    }); 
}); 
+0

任何在网络日志中有趣 –

+0

好像它是一个跨起源错误,不完全知道如何虽然修复:阻止跨来源请求:相同源策略不允许通过https://auth.firebase.com/auth/firebase/create?email=asdf%40gmail.com&password=asdfasdf&firebase=vivid-fire-3819阅读远程资源。可以通过将资源移动到同样如此主要还是启用CORS。 – swoosh

+0

是否因为脚本正在调用https://cdn.firebase.com/...和https://auth.firebase.com/...? – swoosh

回答

1

看来问题在于提交我的表单,这会导致页面重新加载。正如Rob所确认的那样,“重新加载在HTTP OPTIONS请求到服务器检查CORS配置是否能够完成之前发生。”

解决方法是防止表单在提交时重新加载。 ?假我的HTML表单和我的jQuery脚本

<form class="m-t" role="form" onSubmit="return goLogin()"> 
.......... 

function goLogin() { 
    $("#loginButton").click(function() { 
    ......  
    )}; 

    return false; 
} 
相关问题