我试图用ajax向我的节点express路由发送GET请求,但我不知道如何解码URI参数。
这是发送到请求GET/exercises/Day%201的内容。
我想对它进行解码,这样它就会像->第1天
然后我的查询将类似
const program = await Program.findOne({ user: req.user.id })
.populate({
path: 'exercises',
match: { dayOfWeek: Day 1 }
})
.exec();
JS文件
$('#dayOfWeek').on('change', function() {
const dayOfWeek = $('#dayOfWeek').val();
const encoded = encodeURI(dayOfWeek);
$.ajax({
type: 'GET',
url: `/exercises/${encoded}`,
dataType: 'json'
}).done((programs) => {
console.log(programs);
});
});
路由文件
router.get('/:dayOfWeek', async (req, res) => {
try {
const dow = req.params.dayOfWeek;
const program = await Program.findOne({ user: req.user.id })
.populate({
path: 'exercises',
match: { dayOfWeek: dow }
})
.exec();
//.lean();
res.send(program);
}
谢谢你们的帮助。
您可以使用decodeURI((解码URI
const uri = 'https://google.com/a%20%201';
console.log(uri);
console.log(decodeURI(uri));
// OUTPUT
https://google.com/a%20%201
https://google.com/a 1