我有以下代码:
$("#workout-switcher .button").on('click', function(){
console.log('first test'); // this is logged
$.get("/ajax/set-workout.php", { 'request' : id, 'date' : date },
function(data){
console.log('second test'); // this is not logged
},'json'
);
});
这在jQuery 1.8.3中运行良好,即:first test
登录到控制台,然后发送get
请求并成功执行,然后记录second test
进入控制台。
这是jQuery 1.9.0中发生的事情:first test
触发,get
成功触发,但second test
不登录到控制台。
知道这里有什么问题吗?
修改
当我将$ .get更改为$ .ajax时,它开始工作了。显然是jQuery 1.9.0的bug。
答案 0 :(得分:1)
根据升级指南:http://jquery.com/upgrade-guide/1.9/
“jQuery.ajax返回空字符串的JSON结果 在1.9之前,期望返回数据类型为JSON或JSONP的ajax调用会将空字符串的返回值视为成功案例,但会将null返回给成功处理程序或promise。从1.9开始,为JSON数据返回的空字符串被认为是格式错误的JSON(因为它是);这将导致错误。使用错误处理程序来捕获此类情况。 “