React中axios携带日期参数发起GET请求返回空数组如何解决
问题根因
这个问题和日期传递格式没有任何关系,错误出在axios.get()的参数传法上:
axios.get()的第二个参数是请求配置项,不是直接放请求参数的位置。你直接把参数对象作为第二个参数传入时,axios不会自动把参数拼接到URL查询串中,后端完全接收不到activity_creationTimestamp和user_id这两个参数,自然返回空数组。- Postman测试正常是因为你在Postman中正确将参数放在了查询参数(Params)栏,请求格式符合后端预期。
修复方法
GET请求的查询参数需要放在配置对象的params属性下传递,修改后的代码如下:
const getDailyWorking = () => { const datas = { activity_creationTimestamp: '2022-06-28', user_id: 1 } console.log(datas) return axios.get(`${config.api_url}/dailyWork`, { params: datas }).then((response) => { console.log(response.data) }).catch((err) => { console.log(err) }) }
校验方式
修改后打开浏览器开发者工具的「网络」面板,找到对应请求查看路径:
- 错误写法的请求路径为
/dailyWork,无任何查询参数拼接 - 正确写法的请求路径会自动拼接为
/dailyWork?activity_creationTimestamp=2022-06-28&user_id=1,和Postman发出的请求格式完全一致,接口即可正常返回对应数据。
内容的提问来源于stack exchange,提问作者Erik ELN
相关产品推荐
相关产品推荐

