jquery $ .post json dataType响应

时间:2016-01-14 22:27:34

标签: jquery ajax

我试图以json格式处理$ .post的响应。

    $("#contactform").submit(function() {
    var a = $(this).attr("action");
    $("#message").slideUp(750, function() {

        $("#message").hide();
        $("#submit").attr("disabled", "disabled");

        $.post(a, 
            {
                name: $("#name").val(),
                email: $("#email").val(),
                comments: $("#comments").val()
            }, function(data) {

                alert(data.status);                 

            }
            ,{ dataType: "json" }
        );
    });
    return false;
});

来自ajax的反应很好。即使它拿出来,{dataType:" json"行和警报('数据');一切都很好。我做错了什么?

2 个答案:

答案 0 :(得分:0)

由于您的警报未显示且您没有控制台错误,因此您的成功回调似乎未被触发。

添加错误回调,然后您可能会发现您的回复状态代码不是200。

另外,dataType参数应该是一个字符串:

   $.post(a, {
            name: $("#name").val(),
            email: $("#email").val(),
            comments: $("#comments").val()
        }, function(data) {
            alert(data.status);
        }
        , "json")
        .fail(function() {
          alert( "error" );
        });

如果您遇到错误,请查看Chrome Development Tools中的网络标签,查看确切的回复..

答案 1 :(得分:-1)

我通常使用$.ajax,其中数据类型指定为{ dataType: "json" }。 现在在$.post中,您只需将类型声明为字符串"json",即响应失败。