Ajax代码访问隐藏或非公共html或php页面

Ajax code to access hidden or Non public html or php page

本文关键字:html php 页面 代码 访问 隐藏 Ajax      更新时间:2023-09-26

我使用以下Ajax javascript代码从另一个php页面获得响应。

下面的代码,主页正在发送请求到位于同一目录的mypage.php并获得响应。

但是mypage.php页面可以通过http:// ... /mypage.php单独访问

我想发送请求非公开文件,并得到响应to prevent mypage.php access from http web access

说我想从ajax从/home/privatefolder/mypage.php访问它

<script type="text/javascript">
function checkmypage(str)
{
//alert(str);
    if (str=="")
      {
      document.getElementById("mypageResponse").innerHTML="";
      return;
      } 
    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("mypageResponse").innerHTML=xmlhttp.responseText;
            }
          }
    xmlhttp.open("GET","mypage.php?mypage="+str,true);
    xmlhttp.send();
}
</script>

注意:我知道javascript不能访问非http://文件。请提供替代解决方案

mypage.php顶部添加请求检查,如果为真,则包含privatefolder的另一个php脚本,该脚本执行mypage.php的工作:

1-在mypage.php:

中检查请求是否为AJAX请求
if(empty($_SERVER['HTTP_X_REQUESTED_WITH'])
  || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') {
   // Not an AJAX request!
   header('Locate to an error page or other page');
   exit();
}

2-在else语句中包含你的脚本:

else {
   // $_SERVER["DOCUMENT_ROOT"] is a good usage in here
   include('Path to your script in privatefolder');
}