Django使用HttpResponse返回消息给json出错

先来说说我的代码
后端django返回代码

class AddUserAskView(View):
    #用户添加咨询
    def post(self, request):
        userask_form = UserAskForm(request.POST)
        if userask_form.is_valid():
            user_ask = userask_form.save(commit=True)
            return HttpResponse("{'status':'success'}", content_type='application/json')
        else:
            return HttpResponse("{'status':'fail', 'msg':'添加出错'}", content_type='application/json')

前端ajax接收代码

<script>
    $(function(){
        $('#jsStayBtn').on('click', function(){
            $.ajax({
                cache: false,
                type: "POST",
                url:"/org/add_ask/",
                data:$('#jsStayForm').serialize(),
                async: true,
                success: function(data) {
                    if(data.status == 'success'){
                        $('#jsStayForm')[0].reset();
                        alert("提交成功")
                    }else if(data.status == 'fail'){
                        $('#jsCompanyTips').html(data.msg)
                    }
                },
            });
        });
    })

</script>

然后我的错误信息一直显示不出来,后端没有报错,但确实已经把错误信息传到前端了,所以就要从前端查找问题所在。
在这里插入图片描述
F12查找前端报错
查找post /org/add_ask/
Django使用HttpResponse返回消息给json出错_第1张图片
查看前端响应情况
Django使用HttpResponse返回消息给json出错_第2张图片
就可以看到,后端把消息返回给前端了,但是前端报错了,所以后端看不到错误。错误信息就是,SyntaxError: JSON.parse: expected property name or ‘}’ at line 1 column 2 of the JSON data

我就通过网上查找发现就是json的{}里不能使用单引号,所以要修改代码。(不知道这样解释对不对)

return HttpResponse('{"status":"fail", "msg":"添加出错"}', content_type='application/json')

这样就没有问题了。
Django使用HttpResponse返回消息给json出错_第3张图片

你可能感兴趣的:(django)