admin-ajax重定向到其自身,但仅在某些情况下

时间:2019-02-12 11:28:08

标签: php ajax redirect admin-ajax

这是我的ajax功能

$('#rq-page-one-next').one('click', function(e){
    e.preventDefault();
    e.stopPropagation();
    $('.form-crumb li').removeClass('active');
    $('.form-crumb li').eq(1).addClass('active');
    $('#rq-page-one-next').css('display', 'none');
    $('#page-2').removeClass("smallheight");

    var myForm = document.getElementById('form-horizontal');
    formdatainfo = new FormData(myForm);

    $.ajax({
        type: "POST",
        url: myAjax.ajaxurl,
        data: formdatainfo,
        cache: false,
        contentType: false,
        processData: false,
        success: function(){
            navigateToPage();
            console.log("success");
            if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
                $("html, body").animate({ scrollTop: $('#quote-container').offset().top - 60 }, 300);
            }
        },
        error: function(e) {
            console.log('fail');
        },
        xhr: function() {
            var myXhr = $.ajaxSettings.xhr();
            if (myXhr.upload) {
                myXhr.upload.addEventListener('progress', function(e) {
                    if (e.lengthComputable) {
                        $('progress, #progress, #qq_progress, #progress_small').css("display", "");
                        $('progress, #progress, #qq_progress, #progress_small').css("display", "block");
                        $('progress').attr({
                            value: e.loaded,
                            max: e.total,
                        });
                        perce = Math.round((e.loaded/e.total)*100);
                        $('#progress').html(perce+"%");
                    }
                } , false);
            }
            return myXhr;
        }
    });
    return false;

});

目前我在WP中的add_action函数缩短为:

add_action('wp_ajax_nopriv_submit_image', 'submitimage', 999);
add_action('wp_ajax_submit_image', 'submitimage', 999);
function submitimage() {

write_log('submit image started');
write_log($_POST);
write_log($_FILES);
}

我的表单已设置entype,并定义了操作。大约90%的时间,一切运行良好。 Submitimage函数在debug.log中注销其所需的所有内容。 10%的时间不记录任何内容。我唯一注意到的是它失败时以及失败时都没有,在admin-ajax收到200响应之前,有一个admin-ajax.php 302重定向。当它工作时,我不会得到此重定向。重定向将丢失所有已发布的内容。我不知道是什么原因造成的或如何阻止它。我找不到任何阻止用户如果未登录就无法访问admin-ajax的东西。大约4秒钟后,似乎获得了重定向,如果加载速度比那快,那么我就无法获得重定向。

这是可行的: Network img

这是行不通的,302是帖子,然后200是get: Network img with redirect

0 个答案:

没有答案