为什么jQuery不能正确处理这个JSON响应?

时间:2011-12-28 20:10:00

标签: jquery django json

我现在一直在摸着这个约一个半小时。所以,我通过$ .ajax发送一个表单,期待从django回来的json响应。

在前端,js看起来像这样

        $.ajax({
            "type" : "POST",
            "url" : action,
            "dataType" : "json",
            "data" : serialized_form,
            "success" : function (data) {
                alert('hey')
                console.log(data);
                //$("#add_shipping").submit();
            },
            "error" : function (data) {
                alert(data)
            }
        });

在后端,django返回一个塞满序列化json的HttpResponse对象 像这样 - >

        redirectUrl = '/user/purchase/' + str(purchase.pk) + '/'
        response_data = {}
        response_data['redirect'] =  redirectUrl
        response_data['status'] = 200

        rsp = HttpResponse(simplejson.dumps(response_data))
        rsp["CONTENT-TYPE"] = "application/json"

        return rsp

当jQuery获得响应时,它不是像我要求的那样将其记录到控制台,而是简单地在浏览器中显示格式化的json,并由pre标签包围。我猜这可能与我的Content-type标题有关,但是我可以告诉它用'application / json'来回应。谁能想到我可能做错了什么?谢谢!

1 个答案:

答案 0 :(得分:2)

您可能在表单的提交事件中运行该代码而不取消提交。

因此,浏览器正在提交表单并导航到该页面。

添加return false