Javascript 你能发送状态码和html网页吗?
我正在node中使用express framework,我不知道什么是最佳做法,或者这是否是错误的做法,但我想发送状态代码,例如Javascript 你能发送状态码和html网页吗?,javascript,html,express,http-status-codes,Javascript,Html,Express,Http Status Codes,我正在node中使用express framework,我不知道什么是最佳做法,或者这是否是错误的做法,但我想发送状态代码,例如res.status(200).send(“成功”)如果表单输入与服务器匹配,如果不匹配,则发送类似于res.status(403)的内容。发送(“禁止”) 然后在网页中,我可以用发送的响应更新段落元素。因此,用户知道它是否成功 这可能吗?如果是,我怎么做?还有更好的方法吗?当然有可能 摘自express api参考: 资源状态(代码) 设置响应的HTTP状态。它是节点
res.status(200).send(“成功”)
如果表单输入与服务器匹配,如果不匹配,则发送类似于res.status(403)的内容。发送(“禁止”)代码>
然后在网页中,我可以用发送的响应更新段落元素。因此,用户知道它是否成功
这可能吗?如果是,我怎么做?还有更好的方法吗?当然有可能
摘自express api参考:
资源状态(代码)
设置响应的HTTP状态。它是节点response.statusCode的可链接别名
通常情况下,发送状态代码是一种方法。如果您发送的数据没有状态代码,express将自动添加200状态代码,因此您无需手动添加
在客户端,您必须在请求的响应对象中检查非2xx状态代码。下面是一个使用fetchapi的示例
fetch('/your/api')
.then((response) => {
if (!response.ok) { // Check for a non 2xx status code
throw new Error('Network response was not ok');
}
// Do something with the response data
})
.catch((error) => {
// This is only reached when a network error is encountered or CORS is misconfigured on the server-side
console.error('There has been a problem with your fetch operation:', error);
});
示例:凭证用例
如果您想编写一个网页,其中包含一个表单,用于输入用户凭据以访问更多内容,我建议您按照以下方式进行操作:
- 客户端:
- 服务器端:
您好,谢谢您的回复!我的意思是,当我同时发送网页的状态时,如何发送html页面?我应该把他们送到不同的地方吗?例如,在我的工作中,使用一个表单发送post请求,然后服务器以成功或禁止的方式响应。如何响应html页面?我是否将html页面发送到另一个路径,然后让该路径的客户端获取它?所以它会根据响应的成功或失败来更新元素?或者我制作两个网页?一个成功,一个失败?我不确定。再次感谢!
fetch('/your/api')
.then((response) => {
if (!response.ok) { // Check for a non 2xx status code
throw new Error('Network response was not ok');
}
// Do something with the response data
})
.catch((error) => {
// This is only reached when a network error is encountered or CORS is misconfigured on the server-side
console.error('There has been a problem with your fetch operation:', error);
});
// Function is listening to the submit event of your login form
function submitLoginForm() {
let username = document.getElementById("username").value;
let password = document.getElementById("password").value;
const options = {
method: 'POST',
body: JSON.stringify({ username, password }),
headers: {
'Content-Type': 'application/json'
}
};
return fetch('/api/login', options)
.then((response) => {
// Check for a non 2xx status code
if (!response.ok) {
// Show a failed login hint
showMessageBox('Login was not granted by the server. Please check you user name or password and try again.', 'error');
}
// Your login was successfull, manually redirect to user's dashboard, or whatever content...
})
.catch((error) => {
// This is only reached when a network error is encountered or CORS is misconfigured on the server-side
console.error('There has been a problem with your fetch operation:', error);
});
}
app.post('/api/login', (req, res, next) => {
let username = req.body.username;
let password = req.body.password;
checkCredentials(username, password, (err) => {
if (err) {
return res.status(400).send('Wrong user name or password.');
}
// Consider adding a token or a cookie to the response object, so that the user keeps logged in.
return res.send('Access granted.');
});
});