2011-12-13 153 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