用户序列化程序在 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 没有找到任何要提取的数据?