我正在尝试学习react,所以我正在react中重建magento2 minicart,除了数量发生变化时我在提交表单数据时遇到问题之外,一切似乎都运行良好 - 我正在尝试这样做像这样:
onChange = (e) => {
this.setState({ qty: e.target.value }, () => {
axios({
headers: {
'Content-Type': 'application/json'
},
method: 'post',
url: '/checkout/sidebar/updateItemQty/',
data: {
item_id: 13,
item_qty: this.state.qty,
form_key: 'KTC30XGNGahjfVmn'
}
});
});
}
刷新页面时,购物篮数量不会更新,当检查默认 mangento2 如何发布信息时,它似乎与您在图像上看到的不同 - 我如何更改上面的代码,使其与默认值匹配发帖如果这是问题?
更新:将参数更改为数据会导致请求 302 并将类型更改为 HTML,但似乎无法将其恢复为 json
最佳答案
params
是在查询参数中发送数据。要在 post body
中发送数据,请使用 body
选项。像这样:
编辑
由于您要提交表单数据,因此需要将内容类型指定为 application/x-www-form-urlencoded
并且还需要更改我们发送数据的方式。
axios({
method: 'post',
url: '/checkout/sidebar/updateItemQty/',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: queryString.stringify({
item_id: 9,
item_qty: this.state.qty,
form_key: 'KTC30XGNGahjfVmn'
})
});
});
您可以从这里获取查询字符串模块 https://github.com/Gozala/querystring#readme
关于javascript - axios/Ajax发布数据问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59263382/