gpt4 book ai didi

javascript - Axios 发布为 JSON 对象,如何更改

转载 作者:行者123 更新时间:2023-12-03 13:17:02 25 4
gpt4 key购买 nike

正如标题所述,当您执行

axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});

数据将位于 JSON 对象中,因此不会被 $_REQUEST 检测到,只能在 php://input 中找到。

有办法改变这个吗?我也尝试过更改content-type,但这没有帮助。

最佳答案

以下是 github axios page 上的解释:

默认情况下,axios 将 JavaScript 对象序列化为 JSON。要以 application/x-www-form-urlencoded 格式发送数据,您可以使用以下选项之一。

浏览器

在浏览器中,您可以按如下方式使用 URLSearchParams API:

const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);

请注意,并非所有浏览器都支持 URLSearchParams(请参阅 caniuse.com),但有一个可用的polyfill(请确保对全局环境进行polyfill)。

或者,您可以使用 qs 库对数据进行编码:

const qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));

或者以另一种方式(ES6)

import qs from 'qs';
const data = { 'bar': 123 };
const options = {
method: 'POST',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: qs.stringify(data),
url,
};
axios(options);

关于javascript - Axios 发布为 JSON 对象,如何更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41496571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com