Javascript 无法处理来自jQuery.post()的响应

Javascript 无法处理来自jQuery.post()的响应,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下代码 $(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) {

我有以下代码

$(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"}
为什么单击按钮后没有警报?

试试下面的方法

alert(data.msg);

另外,请确保回调位于正确的位置

尝试将服务器的响应返回为
应用程序/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);
        }
    );

将内容类型设置为
application/json
解决了这个问题。看起来jquery magic无法猜测
application/javascript
内容类型上的
json
。我记得它在几个版本之前就可以这么做了…