Django csrf跨站请求伪造

方式一:(一般不用)

$.ajaxSetup({
    data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});

方式二:

$("button").click(function () {

        $.ajax({
            url: "/ajax/",
            type:'POST',
            data: {
                "username": "Django",
                "csrfmiddlewaretoken": $("[name='csrfmiddlewaretoken']").val()
            },
            success: function (data) {
                alert(data)
            }
        })

    });

解析:

def ajax(request):
    import json

    username = request.POST.get('username')
    print(username)

    return HttpResponse(json.dumps("hello"))

方式三:

当传输的数据是json格式时使用第三种

$("button").on('click',function () {
        $.ajax({
            url:'/ajax',
            type:'type',
            data:JSON.stringify({
                name:"wu",
                pwd:"pwd123"
            }),
            contentType:"application/json",
            headers:{"X-CSRFToken":$('[name="csrfmiddlewaretoken"]').val()}
        })
    })

解析:

def ajax(request):
    import json

    data = json.loads(request.body)
    print(data.get('name'))
    print(data.get('pwd'))

    return HttpResponse(json.dumps("hello"))

  

posted @ 2018-02-02 08:58  流星之泪  阅读(60)  评论(0)    收藏  举报