情况:
.post()
- 调用(ajax)而不是实际提交。 200 (OK)
状态(可以在FireBug的Net-View中看到)。 问题:
alert()
的匿名函数。那是为什么?备注:
守则:
这是我的表格:
<form>
<input type="submit" value="Submit" />
</form>
这是我期望的工作:
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1
}, function (data, textStatus, jqXHR) {
$('form').append(data);
alert("done"); // <----- THIS NEVER FIRES
}, 'json');
});
});
这不起作用:
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1
}, null, 'json').done(function (data, textStatus, jqXHR) {
$('form').append(data);
alert("done"); // <----- THIS NEVER FIRES
});
});
});
这将触发警报,但数据将为空。
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1,
success: function (data, textStatus, jqXHR) {
$('form').append(data); // <----- DATA IS UNDEFINED
alert("done"); // <----- THIS FIRES!
}
}, null, 'json');
});
});
答案 0 :(得分:4)
您将错误的数据类型设置为json,服务器返回html类型数据。顺便说一句,你不需要指定它:
dataType类型:String服务器所需的数据类型。 默认值:智能猜测(xml,json,脚本,文本,html)。
$(document).ready(function () {
$('form').submit(function (e) {
e.preventDefault();
$.post('/echo/html/', {
html: "<span>jsFiddle test return msg</span>",
delay: 1
}, function (data, textStatus, jqXHR) {
$('form').append(data);
alert("done");
});
});
});