【发布时间】:2011-04-08 18:28:48
【问题描述】:
我基本上只是尝试通过 AJAX 提交表单,并希望显示处理 PHP 页面的返回。 PHP 页面只是验证输入并显示发生的错误,或向用户显示感谢信息。通常我不会使用 ajax,但在这种情况下,客户设置需要我这样做。
听起来很简单,但我无法让它工作。
我正在使用的 jquery (1.4.2) 代码:
$(document).ready(function() {
$('#subscription').submit( function() {
var inputdata = $('#subscription').serialize();
alert(inputdata);
$.post("process_form.php", inputdata, function(data) {alert(data);} );
});
});
Firebug 只是显示:
POST process_form - 状态:中止
另一个奇怪的观察是成功处理程序实际上被调用,但没有显示任何 responseText。我的 apache 日志显示进程表单的 304 http 消息,之后它显示另一行状态码为 200 的表单,就好像它被重定向回那里一样,这是否是正常的 AJAX 行为我不知道。
W3C 声明here:
如果 Location 标头传达的 URL 的来源与 XMLHttpRequest 来源相同,并且重定向不违反无限循环预防措施,则在遵守同源请求事件规则的同时透明地遵循重定向。否则,这是一个网络错误。
但我不认为我的要求违反了其中任何一项。
总之,长话短说:我被困住了。
非常感谢任何帮助,当然,我很乐意提供任何进一步需要的信息。
【问题讨论】:
标签: php jquery ajax forms post