Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 使用firebase创建用户时出现未知错误_Authentication_Firebase - Fatal编程技术网

Authentication 使用firebase创建用户时出现未知错误

Authentication 使用firebase创建用户时出现未知错误,authentication,firebase,Authentication,Firebase,在尝试使用firebase实现简单的登录身份验证(电子邮件/密码)时,我收到来自浏览器的CORS错误 我检查了安全规则,它被设置为 { "rules": { ".read": true, ".write": true } } 下面是示例代码的摘要 <script src="https://cdn.firebase.com/js/client/1.0.15/firebase.js"></script> <script type='text/javascript'

在尝试使用firebase实现简单的登录身份验证(电子邮件/密码)时,我收到来自浏览器的CORS错误

我检查了安全规则,它被设置为

{
"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);
        }
    });
}); 

var myRootRef=新Firebase('https://vivid-fire-myserver.firebaseio.com/');
var authClient=new FirebaseSimpleLogin(myRootRef,函数(错误,用户){
如果(错误){
警报(错误);
返回;
}
如果(用户){
警报(“用户已登录”);
}否则{
警报(“用户注销”);
}
});
$(“#注册表按钮”)。在(“单击”,函数(){
var email=$(“#email”).val();
var password=$(“#password”).val();
authClient.createUser(电子邮件、密码、函数(错误、用户){
如果(!错误){
警报(“注册成功”);
}否则{
警报(错误);
}
});
}); 

问题似乎是由于提交了我的表单,导致页面重新加载。正如Rob所确认的,“重新加载是在向服务器发出HTTP选项请求检查CORS配置能够完成之前进行的

一个解决方法是防止表单在提交时重新加载。我通过在html表单和jquery脚本中返回false来实现这一点

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

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

    return false;   
}

..........
函数goLogin(){
$(“#登录按钮”)。单击(函数(){
......      
)}; 
返回false;
}

网络日志中有什么有趣的地方吗?这似乎是一个跨源错误,但不确定如何修复:跨源请求被阻止:同源策略不允许在读取远程资源。这可以通过将资源移动到同一域或启用CORS来修复。是因为脚本正在调用…和。。。?Firebase使用完全许可/通配符CORS策略。您在哪个浏览器/版本中看到这种行为?我使用的是最新的firefox和chrome,它们都以相同的方式失败。经过一点黑客攻击,我终于开始关注这个问题。我不确定这为什么会导致CORS错误,但我创建了以下带有和不带的基本表单type=“button”将失败/成功。出于某种原因,它需要声明type=“button”,否则将抛出CORS错误……你知道为什么会导致此错误吗?请按我