【发布时间】:2021-07-03 17:21:54
【问题描述】:
我正在尝试为用户构建登录页面,并且需要将登录信息发送到我的快递服务器。我不太确定如何为我的服务器调用 api 并发送信息。 现在,当我尝试通过单击按钮提交表单时,出现 405 错误方法不允许。
index.html:
<!DOCTYPE html>
<html land="en">
<head>
<meta charset="UTF-8">
<title>Home page</title>
<script src="../app.js"></script>
</head>
<body>
<a href="login.html">To login</a>
</body>
</html>
login.html:
<!DOCTYPE html>
<html land="en">
<head>
<meta charset="UTF-8">
<title>Login page</title><br><br>
<script src="../app.js"></script>
</head>
<body>
<form id="login-form" method="post" action="/login">
<input type="text" name="username" id="username-field" placeholder="Username" required><br><br>
<!-- TODO: Change type to "password" -->
<input type="text" name="password" id="password-field" placeholder="Password" required><br><br>
<input type="submit" value="Login" id="login-form-submit">
</form>
</body>
</html>
app.js:
const express = require('express')
var bodyParser = require('body-parser')
var port = process.env.PORT || 3000;
var app = express();
app.use(express.json());
app.use(express.urlencoded({"extended": true}));
app.get('/', function (req, res) {
res.render(__dirname + '/views/index.html');
});
app.post('/login', function (req, res) {
res.statusCode = 200;
res.send({ 'body': req.body });
});
// Listen on port 3000, IP defaults to 127.0.0.1
app.listen(port, () => {
console.log('Server listening at http://127.0.0.1:' + port + '/');
});
【问题讨论】:
-
奇怪的是
app.js是您的服务器,但您似乎将它包含在您的HTML 页面中。app.js只能在服务器中工作,而不是在浏览器中。在浏览器中查找任何控制台错误。 -
另外,您正在访问 localhost:3000 的服务器,对吗?即这是您在浏览器中访问的页面?
-
您的代码看起来不错。尝试先运行快速服务器,然后提交您的表单
-
@user2740650 当我运行我的服务器然后打开浏览器页面到localhost:3000/login 它说 404 错误无法 GET /login
-
我想从 HTML 页面提交一些表单并让快速服务器处理它。但是,我不确定如何使用 HTML 表单发送请求。
标签: javascript html express