【发布时间】:2021-10-22 01:54:21
【问题描述】:
我正在使用 django rest 框架。我的视图响应正常,但是当我使用 ajax 提交视图时,它给了我一个错误 json 解析错误。
Here is my views.py file:
@api_view(['GET', 'POST'])
@parser_classes([JSONParser])
def signup(request, format=None):
if request.method == 'POST':
data = JSONParser().parse(request)
username = data.get('username')
first_name = data.get('first_name')
last_name = data.get('last_name')
email = data.get('email')
password = data.get('password')
gender = data.get('gender')
birth_date = data.get('birth_date')
serializer = UserSerializer(data=data)
if serializer.is_valid():
user = User.objects.create_user(username=username,first_name=first_name,last_name=last_name,email=email,gender=gender,birth_date=birth_date)
user.set_password(password)
user.save()
data = {'result': 'success', 'message':'You have registered successfully now you can login'}
return Response(data=data, status=201)
elif not serializer.is_valid():
data = { 'result': 'error', 'message':serializer.errors}
return Response(data=data)
if not request.user.id and request.method == 'GET':
return render(request, 'sessionauthapp/signup.html')
我的 ajax js 脚本:
var frm = $('#signupform');
var token = '{{csrf_token}}';
$('#signupform').on('submit', function(e) {
e.preventDefault();
$.ajax({
headers: { "X-CSRFToken": token },
url: '/signup/',
type: 'post',
data: $(this).serialize(),
dataType: "json",
contentType: "application/json",
success: function(data) {
console.log(data);
},
error: function(data) {
}
});
return false;
});
我的 ajax 脚本给了我一个类似 json parse error 的错误,但我的意见响应是好的。
【问题讨论】:
-
请求正文/数据?
JSONParser().parse(request.body)JSONParser().parse(request.data)我只是在猜测,不知道哪个是哪个 -
来自 ajax 脚本的相同错误,但我的响应是好的。
标签: javascript jquery django ajax django-rest-framework