【问题标题】:Why won't jQuery handle this JSON response properly?为什么 jQuery 不能正确处理这个 JSON 响应?
【发布时间】:2012-01-29 10:48:20
【问题描述】:

我已经为此苦苦思索了大约一个半小时。所以,我正在通过 $.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 返回一个 HttpResponse 对象,里面塞满了序列化的 json 像这样->

        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 得到响应时,它并没有像我要求的那样将它记录到控制台,它只是在浏览器中显示由 pre 标记包围的格式化 json。我猜这可能与我的 Content-type 标头有关,但据我所知,它正在响应“application/json”。谁能想到我可能做错了什么?谢谢!

【问题讨论】:

    标签: jquery django json


    【解决方案1】:

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

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

    添加return false

    【讨论】:

    • 谢谢,我现在正在处理它,但据我所知,我返回的是 false。我正在深入挖掘,但似乎这是正确的轨道。
    • 好吧,伙计们,我实际上是在尝试在另一个表单的提交函数的回调中提交一个表单,结果我的目标是错误的表单。然而,由于 SLaks 如此接近正确答案,滴答声就如他所愿。感谢大家的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2015-05-17
    相关资源
    最近更新 更多