json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)ajax请求

json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)ajax请求,ajax,django,Ajax,Django,我有一个ajax请求,在django视图中,我有以下打印和输出 我这行有错误,我想不出原因 parsed_json = json.loads(request.body) 我尝试用utf8解码请求正文,但没有任何更改 AJAX调用: $("#add_user_button").click(function (event) { event.preventDefault(); $.ajax({ type: "POST", url: '/user/'

我有一个ajax请求,在django视图中,我有以下打印和输出

我这行有错误,我想不出原因

parsed_json = json.loads(request.body)
我尝试用utf8解码请求正文,但没有任何更改

AJAX调用:

$("#add_user_button").click(function (event) {
    event.preventDefault();  
    $.ajax({
        type: "POST",
        url: '/user/',
        data:
            {
                'action': "addUser",
                'username': $('#id_username').val(),
                'password': $('#id_password').val(),
                'groups': $('#id_groups').val()
            }
        ,
        contentType: 'application/json; charset=utf-8',
        processData: false,
    });
}
DJANGO视图打印:

print(request.POST.get("username"))
#print(request.encoding) #returns none
print("Request body is :")
print(request.body)
print(type(request.body))
产出:

hello
Request body is :
b'username=hello&password=world&csrfmiddlewaretoken=&addUser=Add+User'
<class 'bytes'>
你好 请求机构是: b'username=hello&password=world&csrfmiddlewaretoken=&addUser=Add+User'
如果分析请求主体,您会发现它不是JSON,要发送JSON,您必须在来自对象的ajax请求中对其进行编码

$("#add_user_button").click(function (event) {
    event.preventDefault();  
    $.ajax({
        type: "POST",
        url: '/user/',
        data:
            JSON.stringify({ // <--here
                'action': "addUser",
                'username': $('#id_username').val(),
                'password': $('#id_password').val(),
                'groups': $('#id_groups').val()
            })
        ,
        contentType: 'application/json; charset=utf-8'
    });
}
$(“添加用户”按钮)。单击(功能(事件){
event.preventDefault();
$.ajax({
类型:“POST”,
url:“/user/”,
数据:
JSON.stringify({//