Vue3中如何向Axios GET请求传递JSON格式参数?
问题分析与解决方案
你的问题出在Vuex dispatch方法的参数传递方式上:dispatch的第二个参数是完整的请求载荷(payload),第三个参数是可选的Vuex配置项(比如root: true),你现在把url和propertyEid拆成两个对象传递,导致propertyEid根本没被传到axiosGet action的请求逻辑里,反而被当成了dispatch的配置参数,这就是API接收到异常参数的原因。
修正后的代码
根据Vuex dispatch的正确用法,把所有请求相关参数合并到同一个payload对象中,同时结合axios的参数传递规则(查询参数用params,请求体参数用data),调整代码如下:
await this.$store.dispatch("axiosGet", { url: 'folder/api/property-walls', params: { propertyEid: this.id } // 若API接收URL查询参数用这个,若接收POST请求体则改用data }).then(response => { if (response.status === 'error') return this.wallList = response.data.data.data })
额外注意事项
- 请确认你的
axiosGetaction内部逻辑:它需要正确读取payload中的url和params(或data),并传递给axios实例。比如action内部可能是类似这样的写法:async axiosGet({ commit }, payload) { return await axios.get(payload.url, { params: payload.params }) } - 如果你的API是通过POST请求接收参数,那么把代码中的
params替换为data,同时确保axiosGetaction内部用axios.post方法。
内容的提问来源于stack exchange,提问作者Sanaz Baghban
相关产品推荐
相关产品推荐

