javascript - Back4app 在 chrome 上给出 parseerror 200

我使用 back4app 为 Web 应用程序的帐户登录创建了一个数据库,它适用于 Firefox-ish 但根本不适用于 Chrome。在 FF 上,我尝试登录,它给了我一个解析错误 200 需要用户名/密码,我重新加载页面并且它可以工作(我不知道为什么它会这样做,我也想修复它)。然而,同样的技巧在 Chrome 上不起作用,每当我重新加载它时,它只会清除字段并且不让我进入。我查看了错误,结果发现 post 请求没有从输入中获取信息出于某种原因的领域。这是登录窗口的 HTML:

<dialog id="login">
  <h1>تسجيل دخول</h1>
  <input type="text" id="loginid" placeholder="id" pattern="[A-Za-z]">
  <input type="password" id="loginpass" placeholder="password">
  <button type="submit" id="loginButton">دخول</button>
</dialog>

这就是它背后的 JS,顺便说一下,它是香草的

const login = document.querySelector('#login');
let loginid = document.querySelector('#loginid').value;
let loginpass=document.querySelector('#loginpass');
const loginButton = document.querySelector('#loginButton');
login.style.display='block';
loginButton.onclick = function() {
let user=Parse.User.logIn(loginid,loginpass.value).then(function(user){
  alert(`Welcome ${user.get('username')}`);
  login.style.display='none';
  membersDiv.style.display='block';
  addMemberArea.style.display='block';
}).catch(function(error){
  alert(error);
})
}

回答1

看起来您正在使用 Parse JavaScript SDK 来登录用户。根据您共享的代码,您似乎没有将正确的参数传递给 Parse.User.logIn() 方法。

logIn() 方法有两个参数——第一个是用户名,第二个是密码。根据您的代码,您似乎将输入字段(当前为空)的 value 作为用户名,并将密码作为第二个参数。

您需要更改代码,以便将用户名和密码输入字段作为两个参数传递,如下所示:

Parse.User.logIn(usernameInput.value, passwordInput.value).then(function(user){
  alert(`Welcome ${user.get('username')}`);
  login.style.display='none';
  membersDiv.style.display='block';
  addMemberArea.style.display='block';
}).catch(function(error){
  alert(error);
})

有关使用 Parse JavaScript SDK 登录用户的更多信息,请查看此处的文档:

https://docs.parseplatform.org/js/guide/#logging-in

相似文章

最新文章