我有以下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验证器