我正在使用React Native创建一个应用程序,我正在努力解决服务器问题。我做了一些没有任何身体的HTTP请求,而且一切正常,但现在我正在尝试发布一个POST,它在Postman(请求转轮工具)中的工作就像一个魅力,但不是在代码中的时候:
所以在我的PHP中,我正在返回我在正文中发送的POST数据,并且它在这里工作,但是在我的代码中它返回null并且我的SQL没有被执行:
save()
{
this.updateDatabase(this.state.data).then((response) => {
console.warn("id: " + response.id + " status: " + response.status);
});
}
async updateDatabase(newData)
{
const response = await fetch('http://XXX.XXX.XXX:8888/updateApplication.php', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
mode: 'no-cors',
body: JSON.stringify({
data: newData,
})
});
const json = await response.json();
return json;
}
这是我的PHP:
$json = $_POST['data'];
$data = json_decode($json)->{'data'};
$appRequest = "UPDATE app_forms SET status = '".$data->{'status'}."'WHERE id = '".$data->{'id'}."'";
$appResults = $connection->query($appRequest);
$response = array ('id'=>$data->{'id'},'status'=>$data->{'status'});
echo json_encode($response);
我不明白为什么它在我的代码中不起作用... 在此先感谢您的帮助
答案 0 :(得分:0)
我认为你的身体格式错误。 试试这个:
var data = new FormData();
data.append( "json", JSON.stringify( {data: newData } );
然后更新请求:
mode: 'no-cors',
body: data