【问题标题】:User Serializer is showing null in AJAX fetch but shows data in DRF用户序列化程序在 AJAX 提取中显示为空,但在 DRF 中显示数据
【发布时间】:2020-07-19 03:26:46
【问题描述】:

下面有当前用户的序列化程序的详细信息

serializers.py

class UserDetailSerializer(serializers.ModelSerializer):
  class Meta:
    model = User
    fields = [
      'id',
      'username',
      'email',
      'first_name',
      'last_name',
    ]

views.py

class UserViewSet(APIView):
  def get(self, request):
    serializer = UserDetailSerializer(request.user)
    return Response(serializer.data)

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^user/', accounts_views.UserViewSet.as_view()),
]

转到 http://localhost:8000/user/ 会显示正确的 json/api 数据:

{
    "id": 1,
    "username": "stormadmin",
    "email": "",
    "first_name": "",
    "last_name": ""
}

但是当我尝试使用 ajax 来获取数据时:

  async getUser() {
    const response = await fetch('http://127.0.0.1:8000'+'/user/');
    const resData = await response.json();
    return resData;
  }

我得到了这个:

{id: null, username: ""}

我的问题是,如何通过 AJAX 调用获取我想要的数据?或者有更好的方法吗?

【问题讨论】:

  • 您是否尝试过使用相同的域名 - http://localhost:8000/user/? django使用cookies获取用户,cookie绑定域名
  • 哇。这实际上有效 facepalm 请发布为答案,以便我可以将您标记为答案

标签: javascript django ajax api django-rest-framework


【解决方案1】:

您应该使用相同的域名 - http://localhost:8000/user/

Django使用cookies获取用户,cookie与域名绑定

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2019-05-09
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多