django winerror 10053 on ajax post

新手上路,请多包涵

1.使用python3 加django 1.9开发时遇到问题,前段ajax post数据时,后台接受数据并成功处理了,但在返回json值时却发生错误 ConnectionAbortedError:[winerror 10053]你主机中的软件终止了一个已建立的连接
使用chrome调试发现返回状态值是200 但返回值为空

谷歌后发现 与http://stackoverflow.com/ques...
问题几乎完全相同 但是无人做出解答

我的python后台代码:

def res(res_code,desc,data):
    res_data = {
        'res_code':res_code,
        'desc':desc,
    }
    if data:
        res_data['data'] = data;
    print(res_data)
    print(JsonResponse(res_data))
    return JsonResponse(res_data)

def res_fail(res_code,desc,data = None):
    return res(res_code,desc,data)

def res_success(desc,data = None):
    return res(0,desc,data)

def search_certificate(request):
    assert request.method == 'POST'
    #验证验证码
    imgcode  = request.POST['code']
    if imgcode is None or imgcode=='':
        return res_fail(1,"验证码不能为空")

    ca = verification_code.Captcha(request)
    if not ca.check(imgcode):
        return res_fail(1,"验证码错误")

    certificate_id = request.POST['certificate_id']    
    if certificate_id is None or certificate_id == '':
        return res_fail(1,"证书编号不能为空")

    try:
        des = certificate_data.objects.get(certificate_id=certificate_id)
    except certificate_data.DoesNotExist:
        return res_fail(1,"证书不存在!")

    return res_success("找到证书",{"id":des.id})

错误信息:
图片描述

图片描述

从报错前执行流程可以看出 后台代码部分一直执行到返回前的print都是没有问题的,返回的数据也不存在任何问题,那么问题只可能发生在JsonResponse上了?感觉不太可能
这个问题弄了很长时间了,项目也因为这个拖了很久,望各位指点指点,非常感谢!

阅读 7.8k
3 个回答
新手上路,请多包涵

你好,请问找到了解决办法了吗

应该是前端问题。
触发ajax的按钮 加上type="button"试试

两种方法

$.ajaxSetup({
    async : false
});

或者这样

$.ajax({  
         type : "post",  
         url : "http://127.0.0.1:8000/sign-up/",  
         data : data,  
         async : false,  
         success : function(data){  
            alert(data)  
         }  
     });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题