Django后端获取前端Ajax json数据,报Exception Type: JSONDecodeError错误-Expecting value: line 1 column 1 (char 0)

1.前端Ajax代码(修改前)

<script>

    $(function(){
        $('input:button').click(function(){
        
            var username = $('input[name="username"]').val()
            var password = $('input[name="password"]').val()

            $.ajax({
                url: "{% url 'api:books' %}",
                type: 'post',
                dataType: 'json',
                
                data: JSON.stringify({'username': username, 'password': password}), //stringify:json对象转换成json串
          
                headers: {'X-CSRFToken': "{{ csrf_token }}"},                
                success:function(data){
                    if(data.res=='ok'){
                        location.href = '{% url "ajax:index" %}'
                    }
                }
            })
        })
    })

</script>

2.后端代码(修改前)

import json

def login(request):

    # 接收json串, 把串变成字典对象
    data = json.loads(request.body)

  return JsonResponse({'res': 'ok'})

3.报错输出

Django后端获取前端Ajax json数据,报Exception Type: JSONDecodeError错误-Expecting value: line 1 column 1 (char 0)_第1张图片

4.前端Ajax代码(修改后)

<script>

    $(function(){
        $('input:button').click(function(){

            var username = $('input[name="username"]').val()
            var password = $('input[name="password"]').val()

            $.ajax({
                url: "{% url 'api:books' %}",
                type: 'post',
                dataType: 'json',
                
                data: {'username': username, 'password': password}, 
                
                headers: {'X-CSRFToken': "{{ csrf_token }}"},
                success:function(data){
                    if(data.res=='ok'){
                        location.href = '{% url "ajax:index" %}'
                    }
                }
            })
        })
    })

</script>

5.后端代码(修改后)

def login(self, request):
    
    username = request.POST.get('username')
    password = request.POST.get('password')

  return JsonResponse({'res': 'ok'})

你可能感兴趣的:(Django,Python,Ajax,python,ajax,django)