EJS 表单 GET 请求,搜索栏无法按预期工作



我正在尝试制作一个当前重定向到"/"的静态搜索栏。这就是目前的情况。但主要问题是,无论输入是什么,输出总是">h">

我正在使用nodejsejs

.

请求.ejs

<form action="/request/search" method="GET">
<input
type="text"
name="search"
id="search"
placeholder="Search for Books"
class="search"
/>
<button class="search-btn" type="submit">Submit</button>
<div class="imae"></div>
</form>

服务器.js


app.get('/request/search?:search', (req, res) => {
console.log(req.params);
res.redirect('/');
});

输出

{ search: 'h' }

我做错了什么,请帮忙

您没有指定,但似乎您正在使用 express。

使用req.query对象而不是req.params,因为参数用于具有路由的 URL,而不是查询参数。话虽如此,您不需要请求 URL 匹配中的:search。我无法解释为什么它会收到"h"的值,但这应该可以解决您的问题。

你需要在 Method 的形式中使用 POST 而不是 GET

<HTML>
<form action="/request/search" method="POST">
<input
type="text"
name="search"
id="search"
placeholder="Search for Books"
class="search"
/>
<button class="search-btn" type="submit">Submit</button>
</form>

在JS端。app.get('/request/search', (req, res) => { console.log(req.body); res.redirect('/'); });

相关内容

  • 没有找到相关文章

最新更新