重定向在AJAX函数中不起作用

时间:2014-02-08 作者:enam

我正在使用ajax发布表单数据。最后,我想重定向到主页。我正在尝试以下代码,它不起作用。它返回错误302。如何在以下函数中重定向?谢谢

add_action(\'wp_ajax_nopriv_custom_register\', \'custom_register\');
add_action(\'wp_ajax_custom_register\', \'custom_register\');

function custom_register(){

    //process

    wp_redirect( home_url() );
    exit;
}

2 个回复
SO网友:fuxia

AJAX请求在后台运行。此处的重定向不会影响主页。302不是一个错误,它只是一个状态码。

AJAX响应应该将URL和状态代码返回到调用页面,或者只返回一个类似于1的数字。然后在调用页面中处理重定向:

jQuery( document ).ready( function( $ ) {
    var url = \'<?php echo home_url(); ?>\';
    $( \'#ajaxtrigger\' ).on( \'click\',
        function() {
            $.post( ajaxurl, {}, function( response ) {
                if ( 1 == response )
                    top.location.replace(url);
            });
            return false;
        }
    );
});

SO网友:Pulkit Ambliya

如果要重定向,请使用javascriptwindow.lcation="your url" 在php代码中。

在ajax调用的函数中尝试这一点;

add_action(\'wp_ajax_nopriv_custom_register\', \'custom_register\');
add_action(\'wp_ajax_custom_register\', \'custom_register\');

function custom_register(){

    //process

    $url = home_url(); 

    ?>
       <script>

        demo(); //function name of jscript

        function demo()
        {
            window.location="<?php echo $url ?>";
        }

       </script>

    <?php exit;
}

结束