繁体   English   中英

Jquery getJson没有调用回调

[英]Jquery getJson not calling callback

我有以下javascript代码:

$.get("categories/json_get_cities/" + stateId,  function(result)
        {            
            //code here
        }, 'json'
    );

处理它的PHP代码基本上输出如下内容:

function json_get_cities($stateId)
{
    //code here
    echo json_encode(array('cities'=>$cities));
}

在firebug控制台中,我可以看到正在按预期进行ajax请求,收到200 OK响应,并返回包含城市的看似正确的JSON对象。 但是由于某种原因,我没有调用我传递给jquery的回调函数。

甚至将debugger调用放在函数的顶部,即

$.get("categories/json_get_cities/" + stateId,  function(result)
        {            
            debugger;
            //code here
        }, 'json'
    );

不起作用。 但是,如果我删除'json'的第三个参数,则调用该函数(但响应文本被视为纯文本而不是JSON对象)。

这是服务器返回的JSON响应:

{"cities":[{"id":"1613","stateId":"5","name":"Acton"}]}

有什么想法吗?

你确认这是有效的JSON吗? 在jQuery 1.4中,JSON解析以严格的方式完成,任何格式错误的JSON都被拒绝并抛出parsererror。

在回调中尝试使用console.log(arguments)进行调试。

另外,你声明'json'是第四个参数,但它应该是第三个参数(如你的例子中所示)。

使用这个确保json有效...

JSON验证器

调试其中一些ajax问题的另一种方法是使用.ajax方法,将GET作为方法类型而不是.get方法传递。 除了成功方法之外,这还允许您指定错误回调函数。

请记住,JSON字段名称必须用引号括起来,比如在文件中编写json时要加载jquery的值。 例如:

在代码中:

{
  name: "value"
}

在JSON文件中:

{
  "name": "value"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM