我将数据提取到服务器,我想在控制台中看到我发送的params。但是在PHP端,$ _POST值为空,我总是收到空数组。(WEB - > PHP - > WEB)我做错了什么?
JS代码:
function json(response){
return response.json()
}
let data = {obj : 'value'};
fetch('http://localhost/Fetch_mysql_angular/requests.php', {
method: 'post',
headers: {
'Accept': 'application/json',
"Content-type": "application/json"
},
body: JSON.stringify(data)
})
.then(json)
.then(function (data) {
console.log(data);
})
.catch(function (error) {
console.log('Request failed', error);
});
PHP代码:
<?php
echo json_encode($_POST);
?>
控制台
[]
感谢您花时间在我的帖子上!
答案 0 :(得分:1)
当您使用 JSON.stringify(data)时,您的数据将以json格式编码并发送,而不是form-data。所以php不会填充$ _POST变量。
您仍然可以通过阅读 php://输入
来获取POST json数据$data = json_decode( file_get_contents('php://input') ) ;
var_dump( $data );
答案 1 :(得分:0)
您未在回调中返回回复。
function json(response){
return response.json();
}