2011-12-13 84 views
0

我有以下代码无法处理jQuery.post响应()

$(function() { 
    $('.apply').click(function(e) { 
     var z = $(this).attr('z-id'); 
     var r = $(this).attr('r-id'); 
     $.post(
      "/r-set-z", 
      "z_id=" + z + "&r_id=" + r, 
      function(data) { 
       alert(data); 
      } 
     ); 
    }); 
}); 

它的工作原理,只是我看到的响应数据不正确的警报。服务器上的一切都很顺利。每次我点击相应的按钮时,所有数据处理完成。该数据由服务器返回的是application/javascript型和包括以下

{"msg": "save successful"} 

为什么有点击一个按钮后无戒备?

回答

0

尝试返回从服务器application/json响应,要么指定JSON在$.post

$.post(
     "/r-set-z", 
     "z_id=" + z + "&r_id=" + r, 
     function(data) { 
      alert(data); 
     } 
    , 'json'); 

或者使用$.getJSON

$.getJSON(
     "/r-set-z", 
     "z_id=" + z + "&r_id=" + r, 
     function(data) { 
      alert(data); 
     } 
    ); 
+0

将content type设置为'application/json'解决了这个问题。看起来像jquery的魔法不能猜测'json'上的'application/javascript'内容类型。我记得它能够在几个版本之前完成... – lig

0

尝试下面的一个。

alert(data.msg); 

另外,还要确保回调是在正确的地方

+0

这不能工作。 – lig