所以我有这段代码:
axios({ method: 'post', url, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: { json, type, } })
最初我是正常人,axios.post但是我更改为这个,因为我认为这可能是标题问题。但是我仍然没有检测,我$_REQUEST也没有$_POST。但是,它正在接收数据file_get_contents("php://input")。
axios.post
$_REQUEST
$_POST
file_get_contents("php://input")
知道有什么问题吗?
编辑
好吧,我想我知道怎么了。它将其作为json对象发布,因此只能在php:// input中读取。如何在axios中将其更改为普通字符串?
从文档中(我没有在引用的材料中保留链接):
使用application / x-www-form-urlencoded格式 默认情况下,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(确保对全局环境进行polyfill)。 另外,您可以使用qs库对数据进行编码: var qs = require('qs'); axios.post('/foo', qs.stringify({ 'bar': 123 }));
默认情况下,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(确保对全局环境进行polyfill)。
另外,您可以使用qs库对数据进行编码:
var qs = require('qs'); axios.post('/foo', qs.stringify({ 'bar': 123 }));