当我尝试提交HTML表单时显示错误"无法POST"

Abh*_*hek 5 javascript post backend node.js

我已经看到了同样错误的其他问题,但没有一个答案似乎有效.

<!DOCTYPE html>
<html>
<body>

<form action="http://127.0.0.1:8080/del" method="post">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

<p>Click on the submit button, and the input will be sent to a page on the server called "http://127.0.0.1:8080/del".</p>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

server.js

var express=require('express');
var body_parser=require('body-parser');
var request = require('request').defaults({json:true});
var app=express();
var del=require('./del'); 
app.post('./del',del.test);
var server = app.listen(8080,function(){
    var host="127.0.0.1";
    var port="8080";
    console.log("App is listening at http://%s:%s\n",host,port);
});
Run Code Online (Sandbox Code Playgroud)

del.js

module.exports={
    test: function(){
        console.log("Hello world.");
    }
};
Run Code Online (Sandbox Code Playgroud)

每当我提交表格时,它都显示出来

不能POST/del

Krz*_*pka 5

在你的server.js 中改变这一行:

app.post('./del',del.test);
Run Code Online (Sandbox Code Playgroud)

对此:

app.post('/del',del.test);
Run Code Online (Sandbox Code Playgroud)

那么你有正确的路由器。

您的del.js更改为:

module.exports={
    test: function(req, res){
        console.log("Hello world.");
        res.status(200).end();
    }
};
Run Code Online (Sandbox Code Playgroud)

因为路由器功能应该返回响应。