用户序列化程序在 AJAX 提取中显示为空,但在 DRF 中显示数据

Posted

技术标签:

【中文标题】用户序列化程序在 AJAX 提取中显示为空,但在 DRF 中显示数据【英文标题】:User Serializer is showing null in AJAX fetch but shows data in 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 请发布为答案,以便我可以将您标记为答案 【参考方案1】:

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

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

【讨论】:

以上是关于用户序列化程序在 AJAX 提取中显示为空,但在 DRF 中显示数据的主要内容,如果未能解决你的问题,请参考以下文章

ObjectInputStream 没有找到任何要提取的数据?

AJAX请求如何正常工作?

在 jQuery 序列化中包含占位符

session的值为空

当我的搜索字段为空时,如何在不搜索结果的情况下呈现页面,但在搜索时仍然异步呈现?

UIPickerView 在模拟器中正常工作,但在设备上*看起来*为空