web-dev-qa-db-ja.com

ajax関数でリダイレクトが機能しない

私はフォームデータを投稿するために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
enam

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;
        }
    );
});
4
fuxia