"Вам необходимо включить JavaScript для запуска этого приложения"; ответ - html вместо json
Используемые технологии: Django, Djoser, react.js, webpack
Я сделал запрос в react.js:
const config = {
headers: {
"Content-Type": "application/json",
},
};
const body = JSON.stringify({
email,
first_name,
last_name,
password,
re_password,
});
const response = await axios.post(
`http://127.0.0.1:8000/auth/users/`,
body,
config
)
Я использовал Djoser в бэкенде для обработки auth-запросов.
Я выполнил console.log ответа и обнаружил, что ответ является html, а не JSON. Статус 200, но должен быть HTTP_201_CREATED
на основании документации Djoser.
Я проверил, что Djoser находится в INSTALLED_APPS
в Django и у меня есть djoser==2.1.0
.
Я пытаюсь добавить "proxy": "http://127.0.0.1:8000",
в package.json, не работает. Я также пытаюсь использовать fetch вместо axios, тоже не работает. Я не уверен, откуда взялась проблема.
Я понял это.
Код состояния подключен и выглядит так, как будто не вызывает конечную точку Djoser.
Я обнаружил, что в моем config.urls
(бэкенде) у меня есть
urlpatterns = [
path('', include('frontend.urls')),
path('auth/', include('djoser.urls')),
path('auth/', include('djoser.urls.jwt'))
]
Поэтому auth/
конечные точки будут проходить через frontend.urls вместо Djoser.
После того, как я изменю его на
urlpatterns = [
path('auth/', include('djoser.urls')),
path('auth/', include('djoser.urls.jwt')),
path('', include('frontend.urls')),
]
это работает.