Ошибка синтаксического анализа JSON при отправке запроса POST с использованием JavaScript API Fetch - PullRequest
0 голосов
/ 19 сентября 2019

Когда я отправляю следующий запрос POST с использованием fetch:

                fetch(requestUrl, {
                    method: 'POST',
                    headers: {
                        'id': 'my_id',
                        'secret': 'my_secret',
                        'Content-Type': 'application/json'
                    },
                    body: {
                      'username': '123',
                      'password': '456'
                    }
                })
                .then(function(response) {
                    return response.json();
                })
                .then(function(data) {
                    console.log(data);
                })
                .catch((error) => {
                    console.log(error);

                })

я получаю следующую ошибку:

   'JSON parse error: Unrecognized token \'object\': was expecting (\'true\', \'false\' or \'null\'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'object\': was expecting (\'true\', \'false\' or \'null\')\n at [Source: java.io.PushbackInputStream@f402d7e; line: 1, column: 9]',

Я попытался устранить неполадки, и ошибка вызвана моим headers и body, которые я пытаюсь отправить с запросом.

Кто-нибудь знает, с чем именно связана ошибка?

1 Ответ

0 голосов
/ 19 сентября 2019

JSON начинается с {или a [или обычного символа ascii.Вы пытаетесь создать что-то вроде беспорядка, и анализатор JSON сбит с толку.Нет действительного JSON не весело.Также было бы полезно показать нам первые несколько символов того, что вы отправляете или что вы получаете до того, как это произойдет.Строка JSON ДОЛЖНА быть правильной в соответствии с документацией JS.Если вы попытаетесь отправить специальные символы, такие как]} \, '"внутри наборов данных, это также смешает их. В этом случае вы должны экранировать эти символы. Если ничто не поможет, создайте строку значений base64. Я просто могу догадатьсячто у вас не получилось экранировать символ "\" (должен выглядеть как \ \ escape) или вы имели в виду "\ object \"? Это выглядит немного странно, когда вы показываете это (неправильная позиция в начале). Некоторые онлайн-декодеры JSON такжедает более полезную информацию об ошибках. Ошибка находится в любом случае внутри строки JSON. Если какой-то «заголовок» будет неправильным - ничего не будет возвращено.

...