Django rest-метод auth PUT, возвращающий неожиданный токен JSON

#django #reactjs #django-rest-framework #put

#django #reactjs #django-rest-framework #put

Вопрос:

Я пытался сделать это в течение нескольких дней на данный момент. Я пытаюсь обновить данные пользователя с помощью метода put в Django, используя rest framework. Тем не менее, я получаю это сообщение об ошибке в консоли. введите описание изображения здесь

Это функция выборки, которая используется для отправки данных на серверную часть. Как показано, я даже пытаюсь сравнить его с другими методами выборки, и я думаю, что с телом выборки все в порядке.

Ниже приведены мои коды, используемые для обновления данных.

введите описание изображения здесь

views.py

введите описание изображения здесь

serializers.py

введите описание изображения здесь

urls.py введите описание изображения здесь

Ответ №1:

Итак, ошибка

Неожиданный токен < в JSON

это означает, что он пытался проанализировать ответ, содержащий символ < . Если бы мне пришлось угадывать, ответ представляет собой HTML-документ, потому что он начинался бы с < ( <html>... ).

Например, это может быть страница с ошибкой 404, потому что URL не был найден. Лучший способ узнать, это вместо регистрации response.json() просто войти response.text() . Пока вы этого не сделаете, трудно понять, что происходит на самом деле.

Комментарии:

1. imgur.com/a/ALwed0l Это то, что я получаю, и я думаю, что ошибка связана с серверной частью, с которой у меня практически нет опыта.

2. Тело является ReadableStream . Моя ошибка, попробуйте войти response.text() . Я редактирую ответ.

3. imgur.com/a/AtWz7Nb Я думаю, он просто отвечает на некоторые бесполезные htmlы

4. @KyiZin это совсем не бесполезно. Если вы читаете содержимое, это HTML-документ, который содержит AssertionError , и он сообщает вам, где. Это должно позволить вам продолжить. Это похоже на ответ об ошибке, обработанный Django (REST framework).

5. Также вам не нужно ваше интерфейсное приложение для отладки этого. Вы можете протестировать свои конечные точки с помощью 1) платформы тестирования Python 2) Postman 3) ввода URL-адреса в вашем браузере (если вы еще не настроили авторизацию). Последнее красиво отобразит полученную вами HTML-ошибку.