安全的AJAX div更新

时间:2014-03-17 16:37:14

标签: javascript php jquery ajax php-include

我是AJAX的新手,请原谅我,如果这是一个愚蠢的问题:

我想用一个php文件的内容更新一个div,该文件位于受保护的文件夹中,因此它只能包含在php文件中,但不能从浏览器中获取。 由于JavaScript是客户端,这意味着我无法调用它,对吧?

例如,我使用以下代码(包含jQuery)得到了我的index.php:

<script>
$("#content").load("includes/login.php");
</script>

#content指的是div。这样可以正常工作,但由于包含不应该是可访问的,因此会出现问题。

然后我想我可以在可访问区域放置类似“wrapper.php”的内容,然后根据您提供的变量包含特定的php文件。

这是接近这个的正确方法还是我做错了?

2 个答案:

答案 0 :(得分:0)

我认为"wrapper.php"的想法是正确的。如果你想将它用于许多文件,你可以做这样的事情,检查它是否是一个AJAX调用,以防止直接加载文件:

// wrapper.php
<?php
// Check if it is AJAX
if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])
AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
    $filename = $_GET['f'];
    include 'includes/'.$filename.'.php';
}

然后:

$("#content").load("wrapper.php?f=login");

但要小心,因为它可能不安全。

答案 1 :(得分:-1)

如果您想要懒惰,可以通过load加载整个页面并解析内容以获取#content

jQuery将按空格拆分参数,并使用第二个元素作为整个页面内容的选择器。

$("#content").load("full/path/to/login #content");

没有仇敌,我说这是一种懒惰的方法。