A. *_*Lau 10 javascript php reactjs axios
正如标题所述,当你做一个
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
数据将位于JSON对象中,因此不会被检测到$_REQUEST
,并且只能在其中找到php://input
.
反正有改变吗?我也试过改变它content-type
,但这没有帮助.
以下是github axios 页面上的解释:
默认情况下,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);
Run Code Online (Sandbox Code Playgroud)
请注意,并非所有浏览器都支持 URLSearchParams(请参阅 caniuse.com),但有一个 polyfill 可用(确保 polyfill 全局环境)。
或者,您可以使用 qs 库对数据进行编码:
const qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));
Run Code Online (Sandbox Code Playgroud)
或者以另一种方式(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);
Run Code Online (Sandbox Code Playgroud)