由于某种原因(我不知道),该表格不会提交给所需的路线。我正在使用此表单来更新数据库中特定文档的数据,但是无论我在表单的action属性中输入什么内容,都会得到错误的路线。
我正在使用method-override提交为PUT请求。我尝试在许多配置中编写action属性(绝对/相对/只是随机的东西,看我是否能得到任何东西)。我也尝试过删除enctype属性。
edit.ejs(通过GET / expenseReports /:id / edit访问):
<form id="ExpenseReport" action="/expenseReports/<%= expenseReport._id %>?_method=PUT" method="POST" enctype="multipart/form-data"> ... </form>
app.js:
methodOverride = require("method-override");
...
app.use(methodOverride("_method"));
...
const expenseReportRoutes = require("./routes/expenseReports");
app.use("/expenseReports",expenseReportRoutes);
expenseReports.js:
router.put("/:id", function(req,res){ ... });
提交此表单时,应在更新数据库中的文档数据后将其重定向到主页。
但是,这实际上是它的作用:
注意:在以下示例中,表单的method属性为“ POST”。
当我将action属性写为action =“ / expenseReports / <%= expenseReport._id%>?_ method = PUT”时,结果为:https://imgur.com/bwS9mOd
当我将action属性写为action =“ expenseReports / <%= expenseReport._id%>?_ method = PUT”时,结果是(不,我没想到这会起作用,但我想我会给(一枪):https://imgur.com/QHUnH2J