admin-ajax перенаправить на себя, но только иногда - PullRequest
0 голосов
/ 12 февраля 2019

Это моя функция 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;

});

Моя функция add_action в WP на данный момент сокращена до этого:

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

В моей форме задан энтип, определено действие,Приблизительно в 90% случаев все проходит нормально.Функции submitimage записывают все, что нужно, в debug.log.10% времени ничего не регистрируется.Единственное, что я заметил, когда он выходит из строя, а когда нет, это когда происходит сбой, существует перенаправление admin-ajax.php 302 непосредственно перед тем, как admin-ajax получит ответ 200.Когда это работает, я не получаю это перенаправление.Редирект теряет все, что было опубликовано.Я понятия не имею, что вызывает это или как остановить это.Я не смог найти ничего, что могло бы помешать пользователю получить доступ к admin-ajax, если бы он не вошел в систему. Кажется, я получаю перенаправление примерно через 4 секунды, если он загружается быстрее, чем тогда, я не получаю перенаправление.

Это работает: Network img

Это не работает, 302 - это сообщение, затем 200 - это получение: Сеть img с перенаправлением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...