我试图以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"行和警报('数据');一切都很好。我做错了什么?
答案 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"
,即响应失败。