我在函数中有以下简单的GET。
axios
.get(`/api/search/q=${this.value}`)
.then(res => {
console.log(res.data);
});
如果我输入查询(在这种情况下为字母“a”),则为GET 404:
GET http://localhost:7777/api/search/q=a 404 (Not Found)
所以,当然我从.then获得了一个未捕获的承诺错误:
Uncaught (in promise) Error: Request failed with status code 404
我认为它必须是一个简单的路由问题,但我的明确路线是:
router.get('/api/search', someController.someFunction)
控制器中的功能工作(即响应数据),因为我在应用程序的其他地方使用它,所以我觉得我已经缩小到axios GET没有找到api。但我无法弄清楚为什么,因为这条道路对我来说还不错。
答案 0 :(得分:0)
你得到404因为节点只期待 / api / search ,但你尝试的 / api / search /:q 完全不同,试试
axios.get('/api/search/', {
params: {
q: value
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
因为添加的任何数量的参数都不会使URL笨拙,而是
的替代axios.get('/api/search?q=${this.value}').
并在服务器上
router.get('/api/search', someController.someFunction)
并在您的控制器中
if(req.query.hasOwnProperty('q')){
var q = req.query.q;
}