【发布时间】:2021-07-17 19:47:24
【问题描述】:
我正在使用 jQuery / JS 前端和 Django / DRF 后端构建看板。
我正在向服务器发送 POST AJAX 请求
function login(email, password) {
var d = {
"email": email,
"password": password
}
d = JSON.stringify(d)
console.log(d)
return $.ajax({
url: "api/accounts/login/",
type: "POST",
data: d,
dataType: "json",
}).then((response) => {
var data = JSON.parse(response);
return data;
}).fail((response) => {
return false;
})
}
但是当服务器收到请求时这个
{"email":"satyam@gmail.com","password":"satyam@789"}
转换为
'{"email": "satyam@gmail.com", "password": "satyam@789"}': ['']}'
Django 代码
class TodoView(ListCreateAPIView):
queryset = Todo.objects.all()
serializer_class = TodoSerializer
permission_classes = (IsAuthenticated,)
def post(self, request):
token = request.META.get('HTTP_AUTHORIZATION', " ").split(' ')[1]
data = {'token': token}
try:
valid_data = VerifyJSONWebTokenSerializer().validate(data)
user = valid_data["user"]
request.user = user
except ValidationError as v:
print("Validation Error", v)
serializer = self.serializer_class(data=request.data, many=True)
if serializer.is_valid():
print(request.data)
serializer.save(user=request.user)
return Response({"todo": serializer.data})
return Response({"error": "Invalid Data"})
这是什么问题造成的?
是 Javascript 还是 DRF?
【问题讨论】:
-
你在哪里看到转换后的结果?您的预期结果是什么?
-
我在 Django 中看到了转换后的结果,我正在尝试使用 Django 将第一个 json 数据保存在 DB 中,但它正在将其转换为服务器中的第二个 JSON,这根据定义的序列化程序无效
-
可以分享一下相关的DRF代码吗? (比如你的模型、视图和序列化器)
-
@KutayAslan 添加了!
标签: javascript jquery django ajax django-rest-framework