Fetch возвращает внутреннюю ошибку сервера, пока почтальон принимает ее - PullRequest
0 голосов
/ 19 июня 2019

В Postman я вызываю запрос к API с успехом.

Когда я пытаюсь сделать это, используя fetch() в ReactJS, он возвращает Internal Server Error (500)

Моя выборка выглядит так:

const FetchData = async (url , request) => {
    return await fetch(url, request)
    .then(async function(res) {
        if (res.ok)
            console.log("OK: " + await res.json())
        else
            console.log("NOT OK: " + await res.text())
    });
}

Запрос:

{
  method: "POST",
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: {
    ...
  }
}

Почтальон> тело:

{
    "value": {
        "RequestType":1,
        "Dependencies":[],
        "Priority":1,
        "RequestLocation":"some string",
        "RequestJSON": "some string",
        "NoCache":true,
        "PostNow":true,
        "Authentication": {
            "Email":"string",
            "Device": {
                "Name":"string",
                "UniqueDeviceId":"string",
                "AppVersion":"string",
                "AppType":int,
                "Devicestatus":int
            }
        }
    }
}

Я на 100% уверен, что оба тела равны друг другу.

Я не могу выяснить, в чем проблема.Ребята, вы это видите?

1 Ответ

1 голос
/ 19 июня 2019

fetch отправит body как есть, в вашем случае вы отправляете объект JS, а не данные JSON, т.е.

body: { ... }

Если сервер ожидает данные JSON,вам нужно будет преобразовать ваш объект в строку JSON, т. е.

body: JSON.stringify({ ... })

PS. Стоит отметить, что это, вероятно, высветило отсутствие проверки на стороне сервера для недопустимых запросов, возможно, вы захотитеисправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...