从外部php文件重定向页面(在ajax调用中)

Page redirect from external php file (in ajax call)

本文关键字:ajax 调用 php 文件 重定向 从外部      更新时间:2023-10-11

我有一个Salesforce"Web to Lead"表单,我正在使用它(在IIS服务器上),我在Ajax调用中对它进行了正确的验证(使用roscripts.com Ajax验证作为起点……这使用Mootools库来执行其Ajax功能),并使用cURL发送所有经过验证的数据,但是,我希望表单在验证成功后重定向到新页面。Ajax调用在每次单击Submit按钮时运行,并在页面上显示错误或运行验证代码的"else"部分中包含的任何内容。

Ajax函数:

window.addEvent('domready', function() {
  $('registerForm').addEvent('submit', function(e) {
    new Event(e).stop();
    var log = $('log_res').empty().addClass('ajax-loading');
    this.send({
      update: log,
      onComplete: function() {
        log.removeClass('ajax-loading');
        //adding a header redirect here works, but redirects every time ajax call runs, regardless if validation succeeds or not
      }
    });
  });
});

"操作"php文件函数:

<?php 
if (rule){ //validation errors } 
else { //where all of the logic happens after validation succeeds
//cURL function 
//redirect attempts:
header( 'Location: http://www.place.com'); // doesn 't work
echo '<meta http-equiv="refresh" content="2" ; url="http://www.place.com">'; //resets the form, but doesn't redirect to www.place.com 
};
?>

我在这里完全被难住了,无论我怎么努力,我都无法让这个该死的东西重定向。如有任何帮助,我们将不胜感激!

根据我对MooTools AJAX的了解,onComplete处理程序将在AJAX完成时触发,即使出现错误。对于删除加载消息来说,这可能很好,但对于成功的处理程序,您可能希望使用onSuccess,对于失败的请求,使用onFailure。虽然您的脚本似乎没有直接使用MooTools,但这就是MooTools AJAX的工作原理。

请参阅上的"Ajax!"部分http://mootools.net/例如。