POST主体未发送/接收

时间:2017-09-08 18:11:51

标签: javascript php http post react-native

我正在使用React Native创建一个应用程序,我正在努力解决服务器问题。我做了一些没有任何身体的HTTP请求,而且一切正常,但现在我正在尝试发布一个POST,它在Postman(请求转​​轮工具)中的工作就像一个魅力,但不是在代码中的时候:

enter image description here

所以在我的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);

我不明白为什么它在我的代码中不起作用... 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我认为你的身体格式错误。 试试这个:

var data = new FormData();

data.append( "json", JSON.stringify( {data: newData } );

然后更新请求:

mode: 'no-cors',
body: data