gpt4 book ai didi

javascript - Node.js - Express 4.x - 方法覆盖不处理 PUT 请求

转载 作者:IT老高 更新时间:2023-10-28 23:01:02 27 4
gpt4 key购买 nike

我正在尝试让服务器处理 PUT 请求。但无济于事。客户端在提交表单后不断收到“Cannot POST/”消息。 我正在使用 Express 4.x。

请注意,如果我在路由中将“put”更改为“post”,请求会得到很好的处理...

如何让我的服务器处理“PUT”请求?

服务器:

var express         = require("express");
var bodyParser = require("body-parser");
var methodOverride = require("method-override");

var app = express();

app.use(bodyParser());
app.use(methodOverride());


app.get("/",function(req,res){
res.render("index.ejs");
console.log("GET received.");
});
app.put("/",function(req,res){
console.log("PUT received: " + req.body.userName + " - " + req.body.password);
});

app.listen(1337);
console.log("Listening on 1337.");

客户

<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
</head>
<body>
<form action="/" method="post">
First
<input type="text" name="first">
Last
<input type="text" name="last">
<input type="hidden" name="_method" value="put">
<button type="submit">Submit</button>
</form>
</body>
</html>

最佳答案

更简单的方法是 override using a query value :

var methodOverride = require('method-override')

// override with POST having ?_method=PUT
app.use(methodOverride('_method'))

使用 HTML 进行查询覆盖的示例调用:

<form method="POST" action="/resource?_method=PUT">
<button type="submit">Put resource</button>
</form>

关于javascript - Node.js - Express 4.x - 方法覆盖不处理 PUT 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019489/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com