"You need to enable JavaScript to run this app";响应是 html 而不是 json

"You need to enable JavaScript to run this app"; response is html instead of 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 来处理身份验证请求。

我 console.log 响应,发现响应是 html 而不是 JSON。状态是 200,但根据 Djoser 的文档应该是 HTTP_201_CREATED

我检查过 Djoser 在 Django 中 INSTALLED_APPS 并且我有 djoser==2.1.0。 我尝试在 package.json 中添加 "proxy": "http://127.0.0.1:8000",,但不起作用。我也尝试使用 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')),
]

有效。