通过jQuery通过AJAX提交表单,并显示正在处理的PHP页面的返回 - php

我基本上只是想通过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的原点是同一原点,并且重定向不违反无限循环预防措施,请在遵循相同原点请求事件规则的情况下透明地遵循重定向。否则,这是网络错误。

但我认为我的要求没有违反任何这些要求。

总之,长话短说:我被困住了。

任何帮助将不胜感激,当然,我很乐意提供任何进一步需要的信息。

参考方案

尝试在提交处理程序的末尾返回false。我不确定发生的事情的确切顺序,但是如果不返回false,就不会阻止表单的默认操作。因此,该表单将以正常方式提交,并且XHR将崩溃到该表单中,从而引起大爆炸。

jquery.post()和php - php

我正在使用$()。post和php来更改的内容。脚本成功执行-萤火虫清楚地表明textarea标记之间的文本已更改,并且我的小警报触发。但是,用户看不到更改。在Firefox中根本不会发生更改,而在IE中,textarea最多可延迟10秒更新。这是我正在使用的jQuery:$(document).ready(function() { $('#pv_…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP-服务器端验证-这是一个好方法吗? - php

我已经通过jQuery的帮助进行了广泛的客户端验证。现在进入服务器端验证,如果我发现某些字段无效,是否可以简单地将错误返回给客户端并且没有任何有用的消息?我的假设是用户必须启用JavaScript才能访问我的网页。如果Web浏览器禁用了JavaScript,则用户将看不到该表单。我可以简单地使用noscript来做到这一点。如果他们通过我设计的表单提交信息,…

AJAX实时电子邮件验证(PHP) - php

当用户在我的网站上创建帐户时,我希望对照我的数据库(MySQL)中的所有当前用户名检查输入的用户名,并确认是否可用。有谁知道我可以使用的任何好的库,或者是jQuery的插件? 参考方案 所需的确切信息以示例形式here给出。它使用jQuery作为JavaScript库