永久链接Ajax问题Wordpress

时间:2012-12-17 05:02:19

标签: ajax wordpress permalinks

var fullpath = '<?php echo site_url(); ?>'
function AjaxRequest(section,divName)
    {

             var pageurl = fullPath+"/ajaxrequest.php?section="+section+"&divName="+divName;         
            //alert(pageurl);   

            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                             document.getElementById(divName).innerHTML='';             
                    document.getElementById(divName).innerHTML=xmlhttp.responseText;
                }
              }
            xmlhttp.open("GET",pageurl,true);
            xmlhttp.send();             

    }

我在wordpress中有一个代码,它使用ajax调用页面。当页面进入ID时会正常工作,例如?page_id = 37但是当我激活Permalink时会停止工作,例如/ overview / ajaxpage。我在xmlhttp.readyState上收到404 pafe错误。任何人都可以帮我解决它。我知道这是一个固定链接问题可能这个ajax代码不足以转换Permalink。

2 个答案:

答案 0 :(得分:0)

没有理由在AJAX请求中使用永久链接。如果只是让永久链接尝试使用url_to_postid()找到他们的ID并使用它。 (正如你已经知道的那样适用于post id)

答案 1 :(得分:0)

你好我已经改变了一些可能对你有用的代码。

function AjaxRequest(section,divName)
{

<?php global $wpdb; ?>

             var pageurl = "<?php echo get_option('sitgeurl'); ?>/ajaxrequest.php?section="+section+"&divName="+divName;         
            //alert(pageurl);   

            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                         document.getElementById(divName).innerHTML='';             
                    document.getElementById(divName).innerHTML=xmlhttp.responseText;
                }
              }
            xmlhttp.open("GET",pageurl,true);
            xmlhttp.send();             

}