所以我有这个代码:
axios({
method: 'post',
url,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: {
json,
type,
}
})
最初我有正常的axios.post
,但我改为这,因为我认为它可能是一个标题问题。但是我仍然没有在我的$_REQUEST
和$_POST
中发现任何东西。但是,它正在file_get_contents("php://input")
中接收数据。
知道什么是错的吗?
编辑
好吧,我想我知道什么是错的。它将它作为json对象发布,因此只能在php://输入中读取。如何在axios中将其更改为普通字符串?
来自the documentation(我没有保留引用材料中的链接):
Using application/x-www-form-urlencoded format
默认情况下,axios将JavaScript对象序列化为JSON。要以application / x-www-form-urlencoded格式发送数据,您可以使用以下选项之一。
浏览器
在浏览器中,您可以使用URLSearchParams API,如下所示:
var params = new URLSearchParams(); params.append('param1', 'value1'); params.append('param2', 'value2'); axios.post('/foo', params);
请注意,所有浏览器都不支持URLSearchParams,但有一个polyfill可用(确保填充全局环境)。
或者,您可以使用qs库对数据进行编码:
var qs = require('qs'); axios.post('/foo', qs.stringify({ 'bar': 123 }));
var params = {
data1: 'string',
}
axios.post(url, params).then(function(response) {
//code here
});
要么
axios.post(url, {data1: 'string' }).then(function(response) {
//code here
});
火
$_POST = json_decode(file_get_contents("php://input"),true);
echo $_POST['data1'];
你可以使用jQuery.param
postdata = $.param({param1: 'value1', param2:'value2'})
你现在可以使用postdata有你的post参数