使用params获取请求

时间:2018-01-09 13:48:56

标签: javascript php request fetch

我将数据提取到服务器,我想在控制台中看到我发送的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);

?>

控制台

[]

感谢您花时间在我的帖子上!

2 个答案:

答案 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();
}