2012-12-17 3 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();    

    } 

나는 ajax를 사용하여 페이지를 호출하는 wordpress와 같은 코드를 가지고있다. ? page_id = 37 같은 ID로 페이지가 들어올 때 잘 작동하지만 Permalink/overview/ajaxpage를 활성화 할 때 작동을 멈 춥니 다. xmlhttp.readyState에 404 pafe 오류가 표시됩니다. 아무도 내가 그것을 해결하는 데 도움이 될 수 있습니다. 내가 아는 permalink 문제는 아마 아약스 의이 코드는 Permalink를 변 경하기에 충분하지 않습니다.바로 가기 Ajax Issue Wordpress

+0

"404"페이지 오류가 발생하는 것은 pageurl 변수의 값이 기존 페이지가 아님을 의미합니다. 즉, 문제는 Permalinks가 아니며, pageurl 변수의 값을 디버깅합니다. – Josep

+0

나는 그것을 풀어 봤지만 그것이 올바른 길인지는 모르겠다. 'if (xmlhttp.readyState == 4 && xmlhttp.status == 200)'에서'xmlhttp.status == 200'을 제거 했으므로 이제는 정상적으로 작동합니다. 나는 Status가 404를 지속적으로 찾아오고있는 것을 발견하면서'xmlhttp.status == 200'을 삭제했습니다. 하지만 기본값 인'? page_id'를 사용하면 상태는 200이 될 것입니다.하지만 왜이 조건을 제거해야만하는지, 그래서 지금은 실제로 잘 작동하는지 알 수 없습니다. 조건이 매우 필요하므로 다른 사람이 조건을 제거하지 않고 그보다 나은 해결책을 가지기를 바랍니다. – Soumya

답변

0

AJAX 요청에 퍼멀 링크를 사용할 이유가 없습니다. 그리고 permalink의 경우에는 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