jQuery 1.9.0怪$ .get行为

时间:2013-02-04 22:38:07

标签: jquery

我有以下代码:

$("#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。

1 个答案:

答案 0 :(得分:1)

根据升级指南:http://jquery.com/upgrade-guide/1.9/

“jQuery.ajax返回空字符串的JSON结果 在1.9之前,期望返回数据类型为JSON或JSONP的ajax调用会将空字符串的返回值视为成功案例,但会将null返回给成功处理程序或promise。从1.9开始,为JSON数据返回的空字符串被认为是格式错误的JSON(因为它是);这将导致错误。使用错误处理程序来捕获此类情况。 “