Не удается получить http.responseText со страницы WordPress. - PullRequest
0 голосов
/ 22 сентября 2018

Предварительно я новичок в AJAX, но я думаю, что у моего кода нет проблем, поэтому я предполагаю, что WordPress вызывает мою неудачу.Я надеюсь получить ответ со страницы, вот моя упрощенная настройка.

У меня есть страница с идентификатором 999 с шаблоном shout.php примерно так:

<?php
/*Template Name: PHP - Shout*/
echo "shout1";
if(is_user_logged_in()) echo " - shout2";
?>

Как и ожидалось, если я перейду к http://.../Page999, он напечатает shout1 и если я вошел в систему shout1 - shout2.

На моей странице запроса:

function button_post(){
            var http = new XMLHttpRequest();
            var url = '<?php echo get_permalink(999); ?>';
            var params = ' ';
            http.open('POST', url, true);
            http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            http.onreadystatechange = function() {//Call a function when the state changes.
                if(http.readyState == 4 && http.status == 200) {
                    alert(http.responseText);
                }
            }
            http.send(params);
        }

Iу меня есть скопированная версия shout.php вне Wordpress, и кнопка реагирует на нее, как и ожидалось, но когда я использую страницу 999 (которая использует тот же файл, что и шаблон), это не работает.Я не знаю, почему WordPress «блокирует» каким-то образом ответ на мою функцию.

Это не обязательно должна быть та же самая настройка, но мне нужен файл, работающий внутри Wordpress, чтобы я мог использовать такие функции, как is_user_logged_in().

Насколько мне известно, это единственный способ заставить Wordpress интерпретировать внешнюю страницу: установить его в качестве шаблона и использовать на странице.Я не знаю, является ли это причиной проблемы.

Заранее благодарим вас:)

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