带有搜索栏的 EJS 表单 GET 请求未按预期工作
EJS Form GET Request with a search bar not working as expected
我正在尝试制作一个当前重定向到“/”的静态搜索栏。这只是目前的情况。但主要问题是无论输入是什么,输出总是'h'
我正在使用 nodejs 和 ejs
.
request.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>
server.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('/'); });
我正在尝试制作一个当前重定向到“/”的静态搜索栏。这只是目前的情况。但主要问题是无论输入是什么,输出总是'h'
我正在使用 nodejs 和 ejs
.
request.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>
server.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('/'); });