javascript - 使用 Fetch API 创建登录表单
问题描述
所以,我正在制作一个登录表单,并且我已经实现了 fetch API
const form = {
email: document.querySelector("#signin-email"),
password: document.querySelector("#signin-password"),
submit: document.querySelector("#signin-btn-submit"),
messages:document.getElementById("form-messages")
};
let button = form.submit.addEventListener("click", (e)=> {
e.preventDefault();
const login = 'https://ffcc-app.herokuapp.com/user/login';
fetch(login, {
method: "POST",
headers: {
Accept: "application/json, text/plain, */*",
"Content-Type": "application/json",
},
body: JSON.stringify({
email: form.email.value,
password: form.password.value,
}),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((err) => {
console.log(err);
});
});
我也得到了想要的输出:
问题是当“登录成功”时我必须重定向到主页,否则我必须显示一条消息说“用户不存在”。我该怎么做?我还应该在我的代码中添加什么?
解决方案
const form = {
email: document.querySelector("#signin-email"),
password: document.querySelector("#signin-password"),
submit: document.querySelector("#signin-btn-submit"),
messages: document.getElementById("form-messages"),
};
let button = form.submit.addEventListener("click", (e) => {
e.preventDefault();
const login = "https://ffcc-app.herokuapp.com/user/login";
fetch(login, {
method: "POST",
headers: {
Accept: "application/json, text/plain, */*",
"Content-Type": "application/json",
},
body: JSON.stringify({
email: form.email.value,
password: form.password.value,
}),
})
.then((response) => response.json())
.then((data) => {
console.log(data);
// code here //
if (data.error) {
alert("Error Password or Username"); /*displays error message*/
} else {
window.open(
"target.html"
); /*opens the target page while Id & password matches*/
}
})
.catch((err) => {
console.log(err);
});
});
如您的屏幕截图https://i.stack.imgur.com/WJBh2.png中所述,由 data.error 处理的登录成功和错误
推荐阅读
- excel - 空单元到早期的 While Wend
- python - 如何改进我的随机字符串生成器
- matplotlib - TypeError:“元组”对象不可调用;matplotlib 无花果大小
- ajax - 我的 ajax 数据提交函数抛出错误
- tensorflow - 如何解决 model.predict() 中的 ValueError?
- python-3.7 - 如何为 python 3.7 安装 staza(此命令返回错误(!pip install stanza))
- java - 自定义 ThrowableRenderer 不工作 log4j 1.x
- python - hackerearth - 列表轮换问题 - 运行时错误 NZEC
- c# - 获取C#变量下函数的MethodInfo
- typescript - 如何在其父类的数组中访问子类的属性