jQuery 1.5打破了旧的1.4 $ .get调用

|| 我最近升级到1.5,并且功能如下:
function showData(id) {

 $.get(\"/url/getdata\", {id : id}, function(data) {
 $(\"#dialogData\").html(data);
 $(\"#dialogData\").dialog({width: 500, modal: true, zIndex:22000});
 }, \"json\");
}
添加1.5不再起作用。 看一下萤火虫,返回了正确的数据,但是该函数在进入回调后中断。 一切都停止了。 我怎样才能解决这个问题?我了解了1.5中对Ajax调用的更改,但是在我的项目中有超过一千个这样的调用->我什至无法开始考虑将它们全部淘汰并进行更改,更不用说对它们进行bug测试了。 编辑:奇怪的是,如果我将\“ text json \”而不是\“ json \”用作dataType,它将起作用。我认为浏览所有代码并进行更改不是一个可行的选择... 编辑2:我没有返回json_encode($ string),而是尝试返回json_encode(array(\“ string \” => $ string)),然后我做了$(element).html(data.string)。 这也不起作用,通过此调用获得的JSON数据在jsonlint.com上有效 编辑3:在json_encode输出之前尝试设置标头,不起作用。到目前为止,唯一的解决方案是将数据类型设置为text json。     
已邀请:
您将数据与
html()
函数一起使用,但需要JSON数据。查看返回的mime类型,以及您是否真的希望数据为可解析的JSON。     
听起来您需要在服务器端设置
Content-Type
标头。 PHP可以轻松地做到这一点,只需在开始输出编码的JSON数据之前的某个时间调用ѭ3。 jQuery将看到该标头,并自动为您解析JSON。我猜在从不版本中,对于
dataType
可能更严格。如果它尝试将其解析为HTML(因为PHP默认发送
Content-Type: text/html
),则可能会遇到错误。 获得JSON数据后,您可以构建HTML以与
html()
一起使用。     
我是罪魁祸首。 它是queue.js,这是一个ajax扩展名,允许对ajax调用进行排队和中止。它扩展了jquery的ajax,因此ajax最终被破坏了。现在找到恢复兼容性的方法,我一切都很好。 感谢大家的努力!     

要回复问题请先登录注册