или Как бороться с ошибками «Ошибка сети: неожиданный токен» в клиенте Apollo

Иногда клиент Apollo выдает такую ​​ошибку:

Сетевая ошибка: неожиданный токен ‹в JSON в позиции 0

Это происходит из-за того, что он пытается проанализировать строку, которая, как он ожидает, будет JSON, но затем встречает символ «меньше». Обычно это означает, что HTML был возвращен вместо ожидаемого JSON, который является форматом возврата GraphQL.

Когда это происходит, вы не видите всего HTML-сообщения, потому что оно сразу же прерывается этой ошибкой. Итак, как мы видим это сообщение об ошибке?

Мы можем использовать Afterwares.

Afterware очень похоже на промежуточное ПО, за исключением того, что послепрограммное обеспечение запускается после того, как был сделан запрос,
когда ответ будет обработан. Он идеально подходит для реагирования на ситуацию, когда пользователь выходит из системы во время сеанса. (Http://dev.apollodata.com/core/network.html)

Здесь response - это HTTP-ответ, возвращаемый сервером. Фактическое тело ответа хранится как Blob в response._bodyBlob. Таким образом, мы можем затем преобразовать этот Blob в строку и увидеть фактическое тело ответа.

Это будет выглядеть так:

Это напечатает тело ответа HTTP, полученное клиентом Apollo, на консоль браузера.

Если вам понравился этот пост, нажмите на маленький зеленый значок 💚! Спасибо!

Личные страницы: http://johnpaulada.github.io