使用Ajax访问PHP页面

Accessing PHP page with Ajax

本文关键字:页面 PHP 访问 Ajax 使用      更新时间:2023-09-26

我不是美国/英国人,请原谅我英语不好。

我目前正在开发一个安全的网页。页面的主要结构是:

  • 文件夹WWW(这里是所有可以直接访问的.php文件,.js和.css文件)

  • 文件夹包括(这里是我正在使用的所有php类:functions.php、database.php等。此文件夹不能直接已访问)

所以在我的.js文件(在WWW文件夹中)中,我使用ajax调用文件ajax.php(在includes文件夹中)。问题是,它显示错误404(找不到文件)。

我当前的代码(custom.js-在WWW文件夹中):

dataUrl = "column="+col+"&type="+typ+"&nacin="+m;
$.ajax({
        url:"../includes/panelTable.php",
        type:"POST",
        data:dataUrl,
        success:function(data){
            $("#placeForADMTable").html(data);
        }
 });

知道怎么解决这个问题吗?

文件夹包括。。。无法直接访问此文件夹

那么,你为什么对无法访问该文件夹中的文件感到惊讶呢?

将包含文件保留在文档根目录之外(或其他阻止浏览器访问的方法)是一种很好的做法。因此include文件应该保持原样。只需在www中添加一个PHP脚本即可调用include文件,例如

<?php
// www/indirectPanelTable.php
require "../includes/panelTable.php";

并修改您的ajax以指出这一点:

dataUrl = "column="+col+"&type="+typ+"&nacin="+m;
$.ajax({
    url:"indirectPanelTable.php",
    type:"POST",
    data:dataUrl,
    success:function(data){
        $("#placeForADMTable").html(data);
    }
 });

只需更改ajax url,如下所示:

$.ajax({
     url:"includes/panelTable.php",
     type:"POST",
     data:dataUrl,
     success:function(data){
        $("#placeForADMTable").html(data);
    }
});

使用它的包装器(通常为$(document).ready(...)),如下所示:

$( document ).ready( function () //Make sure yur page is ready
{
    dataUrl = "column=" + $( "#col_selector" ).val() + "&type=" + $( "#typ_selector" ).val() + "&nacin=" + $("#m_selector").val();
    $.ajax( {
        url: "includes/panelTable.php", // Surely you want to be able to access this as you kinda need it?
        type: "POST",
        data: dataUrl,
        success: function ( data )
        {
            $( "#placeForADMTable" ).html( data );
        }
    } );
} );

此外,您可能缺少coltypm,因此使用输入/元素的ID来获得此时的值。

正如SHAZ所说,将URL修改为不是绝对路径,而是从根目录开始的路径(默认情况下,它从一开始就显示)。

另一个解决方案是将include目录中所需的文件包含在另一个PHP脚本中,并使用AJAX进行访问。