如何在Axios GET请求中使用浏览器URL中的参数?
问题解决
你的核心问题是URL拼接错误:你在axios.get里用了/API/joindiscussion/ + {id},这里的{id}是一个包含id属性的对象,和字符串拼接时会被转成[object Object],导致请求的URL变成/API/joindiscussion/[object Object],自然无法正确获取数据。
正确写法有两种:
1. 用模板字符串直接嵌入变量(推荐)
既然你已经用了模板字符串的语法,可以直接把id变量放进模板里,不用额外拼接:
const getData = () => { axios.get(`/API/joindiscussion/${id}`) .then(response => { // 处理返回的数据 console.log(response.data); }) .catch(error => { // 处理错误 console.error(error); }); }
2. 普通字符串拼接(不用模板字符串的情况)
如果不用模板字符串,直接用变量id拼接,不要加大括号:
const getData = () => { axios.get('/API/joindiscussion/' + id) .then(response => { // 处理数据 }) .catch(error => { // 处理错误 }); }
额外提示:
- 确保你的API端点
/API/joindiscussion/:id确实支持通过URL路径参数接收id,而不是通过查询参数(如果是查询参数的话,应该写成/API/joindiscussion?id=${id})。 - 建议在请求前先打印一下最终的URL,确认是否正确:
console.log(/API/joindiscussion/${id}),这样能快速排查URL是否有误。
内容的提问来源于stack exchange,提问作者SwiftDev
相关产品推荐
相关产品推荐

