2012-12-17 246 views
1
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的頁面時它工作正常,但在激活像/ overview/ajaxpage這樣的永久鏈接時停止工作。我在xmlhttp.readyState上遇到404 pafe錯誤。任何人都可以幫助我解決它。我知道它的永久鏈接問題可能這個ajax代碼不足以轉化永久鏈接。永久鏈接Ajax Issue Wordpress

+0

如果您正在收到「404」頁面錯誤,這意味着您的pageurl變量的值是不存在的頁面。換句話說:問題不是固定鏈接,請調試pageurl變量的值。 – Josep

+0

雖然我已經解決了它,但不知道這是否正確。我從'if(xmlhttp.readyState == 4 && xmlhttp.status == 200)'中移除了'xmlhttp.status == 200',它現在工作正常。我刪除了'xmlhttp.status == 200',因爲我發現Status持續到了404。但是,如果我使用默認的'?page_id',那麼狀態就是200.但我真的不知道爲什麼所以我不得不刪除這個條件,現在它確實工作正常。我希望別人有更好的解決方案,而不是在沒有去除條件的情況下,因爲條件非常需要。 – Soumya

回答

0

沒有理由在AJAX請求中使用永久鏈接。如果只有永久鏈接嘗試使用url_to_postid()找到他們的ID並使用它。 (正如你已經知道,與郵政ID很好)

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

} 
+0

我從Ajax.js調用Ajax文件 – Soumya