无法从wordpress页面接收“ http.responseText”

时间:2018-09-21 23:29:54

标签: javascript php ajax wordpress

之前,我是AJAX的新手,但我认为我的代码没有问题,所以我猜是WordPress引起了我的挫折。我希望实现的是从页面接收响应,这是我的简化设置。

我有一个ID为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);
        }

我在Wordpress外部有一个shout.php的复制版本,并且该按钮会像预期的那样响应它,但是当我使用页面999(使用与模板相同的文件)时,它不起作用。我不知道为什么wordpress会以某种方式“阻止”对我功能的响应。

不需要完全相同的设置,但是我需要在wordpress中运行文件,以便可以使用is_user_logged_in()之类的功能。

据我所知,这是使Wordpress解释外部页面的唯一方法:将其设置为模板并在页面上使用。我不知道这是什么引起了这个问题。

提前谢谢您:)

0 个答案:

没有答案