【问题标题】:jQuery.getJSON doesn't trigger callbackjQuery.getJSON 不会触发回调
【发布时间】:2010-10-09 01:11:02
【问题描述】:

我有一个 html 代码:

<button>asd</button>
<script type = "text/javascript">
$('button').click(
    function() {
        $.getJSON('/schedule/test/', function(json) {
            alert('json: ' + json + ' ...');
        });
    }
);
</script>

及对应的视图:

def test(request):
    if request.method == 'GET':
        json = simplejson.dumps('hello world!')
        return HttpResponse(json, mimetype = 'application/json')

视图已执行(使用print 测试),json 变量已初始化但未出现警告。我做错了什么?我已经看过一些关于此的文档(例如http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback),但我没有找到答案。

编辑:问题是,HttpResponse 没有被导入......不幸的是,Django 没有给出任何错误。其他一切都是正确的。 问候
克里斯

【问题讨论】:

  • 您是否已备份并尝试将其作为纯文本只是为了好玩?

标签: jquery django getjson simplejson


【解决方案1】:

您确定 JSON 有效吗?直接看响应或者使用Firebug

【讨论】:

    【解决方案2】:

    很可能是 json 格式不正确。有时,当我的代码(应该生成 json)生成错误时,我会发生这种情况。两种选择:

    • 使用 firebug 查看 JSON 响应

    • 使用 jQuery.ajaxSetup 选项在您的 jquery 代码中设置错误处理,例如:

        $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {   
            alert(textStatus);
            alert(errorThrown);
            alert(XMLHttpRequest.responseText);
        }});
      

    使用错误处理进行调试非常棒,因为当您的响应出现问题时,您会立即知道。您可以查看jQuery documentation for jQuery.ajax,其中包含 jQuery.ajaxSetup 的所有可用选项。

    编辑:第三种选择是只打开应该生成 JSON 的 URL 并通过 JSON Lint 运行输出以验证它。

    【讨论】:

    • 您能否指出或解释一下如何使用 FireBug 检查 JSON?
    • 当然。我假设您在 FF 中安装了 FireBug,如果您没有安装,请告诉我。 FireBug 在 XHR 选项卡中跟踪您的所有 ajax 请求。在此处展开​​请求,然后单击“响应”选项卡。您将在那里看到 JSON 或其他响应文本。祝你好运!
    • 您需要在您提供的代码中再关闭一个大括号。
    【解决方案3】:

    我不久前遇到了这个问题,并为 jQuery 的 Ajax 重写了一个包装器,它允许您传递正常的 getJSON 和每个 get 的附加错误回调。

    http://www.nurelm.com/themanual/2010/08/09/self-indulgent-code-jquery-getjson-with-error-handling/

    【讨论】:

      【解决方案4】:

      我认为您在 url 模式中缺少尾随 $。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 2015-10-27
        • 1970-01-01
        • 2011-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多