jQuery.getJSON不会触发回调

chr*_*iss 25 django jquery simplejson getjson

我有一个HTML代码:

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

和相应的观点:

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

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

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

jon*_*ohn 47

json很可能没有正确形成.有时这种情况发生在我的代码中,应该生成json会产生错误.两种选择:

  • 使用firebug查看JSON响应

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

      $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {   
          alert(textStatus);
          alert(errorThrown);
          alert(XMLHttpRequest.responseText);
      }});
    
    Run Code Online (Sandbox Code Playgroud)

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

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