javascript - axios/Ajax发布数据问题

标签 javascript ajax reactjs axios magento2

我正在尝试学习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 如何发布信息时,它似乎与您在图像上看到的不同 - 我如何更改上面的代码,使其与默认值匹配发帖如果这是问题?

我的 axios 帖子: enter image description here

默认 M2 帖子: enter image description here

更新:将参数更改为数据会导致请求 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/

相关文章:

javascript - 如何在羽毛笔编辑器字体颜色菜单中添加我自己的颜色列表?

reactjs - MuiThemeProvider 中的错误

javascript - 如何通过ajax传递json数据?

javascript - 谷歌应用引擎,Ajax,文件上传,

javascript - ReactJS - 刷新时 componentDidMount 中的 Prop 不立即可用

javascript - 如何在 React Native 中登录和注销后在 2 个不同的导航器之间导航

javascript - 如何在 Backbone 关系中创建嵌套表单?

javascript - getElementById 与 getElementsByClassName 与 querySelector 的性能

javascript - 如何使用 Javascript 创建 AWS 签名?

javascript - jQuery Ajax更改缓存的变量名称: false