代码之家  ›  专栏  ›  技术社区  ›  Jrgns

如何通过jquery json调用捕获json解析错误?

  •  0
  • Jrgns  · 技术社区  · 14 年前

    我正在对服务器进行Ajax调用,该服务器有时返回无法解析的JSON。服务器不在我的控制之下,所以我无法修复。

    function eventFunction(evt) {
        $('div#status_bar').show();
        $.ajax({
            url: 'http://buggyserver.com/api/',
            type: 'GET',
            data: { 'mode': 'json', 'q': 'get/data' },
            dataType: 'json',
            success: updateForm
        });
    }
    
    function updateForm(returned, status) {
        if (status == 'success') {
            //Update the form here
        }
        $('div#status_bar').hide();
    }
    

    当返回不可解析的JSON时, updateForm 无法调用函数。

    在客户方面,我如何确保 更新窗体 何时调用函数以隐藏状态栏?我试过放 try { } catch {} Ajax调用和UpdateForm周围的子句。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    你可以这样做:

    function eventFunction(evt) {
        $('div#status_bar').show();
        $.ajax({
            url: 'http://buggyserver.com/api/',
            type: 'GET',
            data: { 'mode': 'json', 'q': 'get/data' },
            dataType: 'json',
            success: updateForm,
            complete: function() { $('div#status_bar').hide(); }
        });
    }
    
    function updateForm(returned) {
       //Update the form here
    }
    

    这个 complete 回调在成功后激发,无论是否成功。