django如何发送ajax响应?

时间:2016-05-19 14:30:12

标签: ajax django

这是我的代码,我的响应是200 OK但是ajax来到错误部分 我无法弄清楚

我的HTML:

    $(".statics").click(function(){
        var name = $(this).attr("data-name");

        $.ajax({
            url: 'statics/',
            data: {
                'name':name
            },
            type: 'POST',
            async: false,
            dataType: 'json',
            success: function(dataArr){
                console.log("ssss:",dataArr)
                if(dataArr == "IS_PASS"){
                    alert('PASS!');
                }else if(dataArr == "NOT_PASS"){
                    alert('NOT_PASS');
                } 
            },
            error: function(ts){
                console.log("eeee:",ts)
                alert('fail');
            },
        });
    });

我的views.py

def statics_r(request):
    if request.is_ajax():
        name = request.POST['name']

        ...

        if is_pass:
            return HttpResponse("IS_PASS")
        else:             
            return HttpResponse("NOT_PASS")

控制台是:eeee: Object {readyState: 4, responseText: "NOT_PASS", status: 200, statusText: "OK"}
 为什么不成功???

1 个答案:

答案 0 :(得分:1)

对于ajax响应,您应该返回json,最简单的方法是使用JsonResponse类而不是HttpResponse,或设置content_type

HttpResponse("{'result': 'IS_PASS'}", content_type="application/json")

您需要调整success功能才能访问结果,即dataArr.result