I have a stage in AWS API Gateway that takes POST requests. If I call this API Gateway with Postman, everything works as expected. I can see in CloudWatch logs, that the body of the POST is present. The body is as follows (shortened):
{
    "Success": "1",
    "Item": {
        "IngameName": "SomeName",
        "Timestamp": "Mon Oct 12 2020 19:07:29 GMT+0100 (British Summer Time)"
    }
}
I also set a header for the content type in Postman: Content-Type : application/json.
I try to make the same call again using fetch in JavaScript:
let testJson = {
    "Success": "1",
    "Item": {
        "IngameName": "SomeName",
        "Timestamp": "Mon Oct 12 2020 19:07:29 GMT+0100 (British Summer Time)"
    }
};
fetch(apiGatewayAddressLocal, {
    method: 'POST',
    body: JSON.stringify(testJson),
    headers: {
        'Content-Type': 'application/json'
    }
});
The fetch call reaches API Gateway successfully, but CloudWatch logs say that the body is empty. I have also tried doing json.parse instead of json.stringify but this gives me Unexpected token errors in the console. I saw some solutions including Accept:application/json as a header, which I tried but does not fix the solution. I also tried the solution suggested here, but then I could not reach API Gateway at all.
I have double checked that apiGatewayAddressLocal definitely contains a valid link, it is the same as I used in Postman
Why is my fetch call not passing any body to API Gateway?
