2017-04-19 69 views
2

我只需要一种通过POST方法发送数据的方式,但响应是空的。为什么?如何通过POST方法发送数据?

阵营的本地代码:

fetch('http://justanexample.altervista.org/saveinfo.php', { 
    method: 'POST', 
    headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, 
    body: JSON.stringify({text: "blablabla", id_product: "12"}) 
}).then((response) => response.text()) 
.then((responseData) => { console.log("response: " + responseData); }) 
.catch((err) => { console.log(err); }); 

Saveinfo.php:

echo "Hello World\n"; 
echo json_encode($_POST); 

响应:

response: Hello World 
[] 
+0

使用print_r()而不是echo。的print_r(json_encode($ _ POST)) – Shaniawan

+0

@Shaniawan完成,则返回: “回应:你好世界 阵列 ( ) 1” – xRobot

回答

3

在您的更迭小号处理程序,你必须编辑response.text()东阳你得到一个JSON响应

fetch('http://justanexample.altervista.org/saveinfo.php', { 
    method: 'POST', 
    headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json' 
      }, 
    body: JSON.stringify({text: "blablabla", id_product: "12"}) 
}) 
.then((response) => JSON.stringify(response.json())) 
.then((responseData) => { console.log("response: " + responseData); }) 
.catch((err) => { console.log(err); }); 

在PHP代码中使用这个代替现有代码的

$json = file_get_contents('php://input'); 
$obj = json_decode($json, TRUE) 
echo $obj; 

FORMDATA例:

var data = new FormData() 
data.append({text: "blablabla", id_product: "12"}); 
body: data 
+0

完成,它返回一个空字符串: “回应:” – xRobot

+0

检查编辑为你的PHP文件 –

+0

完成后,它会返回以下内容:“SyntaxError:意外的令牌<位于位置0的JSON中” – xRobot

0

可能导致空响应的常见错误是头对象中缺少的'Content-Length'属性。

尝试增加这样的:

let body = JSON.stringify({text: "blablabla", id_product: "12"}) 

fetch('http://justanexample.altervista.org/saveinfo.php', { 
    method: 'POST', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json', 
    'Content-Length': data.length 
    }, 
    body: body 
}).then((response) => response.text()) 
    .then((responseData) => { console.log("response: " + responseData); }) 
    .catch((err) => { console.log(err); }); 

,让我知道是否有帮助。

相关问题