【问题标题】:PHP & jQuery .load() - If you visit the .load() URL, redirect backPHP & jQuery .load() - 如果你访问 .load() URL,重定向回来
【发布时间】:2011-11-30 08:56:01
【问题描述】:

我正在使用 jQuery 加载,从外部文件加载一些数据,如下所示:

$("#div1").load("test.php");

现在这工作正常,但我希望用户不能访问 test.php。如果他们输入 URL test.php,则被重定向到 index.php

我试过了:

我在我的索引中插入:<? $fromIndex = true; ?>,这在我的 test.php 文件中:

<? 
$fromIndex = true;
if(!isset($fromIndex) || !$fromIndex) {
    header("Location: index.php");
    exit();
}
 ?>

如果您访问 test.php,重定向效果很好,但从 index.php 加载不起作用。

编辑:注意:我不介意将 test.php 更改为 .xml 吗?或者任何其他有帮助的东西。我正在加载的内容很少&lt;option&gt;

有人可以帮帮我吗?

非常感谢

【问题讨论】:

    标签: php jquery redirect load


    【解决方案1】:

    实际上没有办法阻止用户直接访问 URL,但仍允许 AJAX 访问相同的 URL。但是,一种劝阻他们的简单方法是 A)将响应作为 JSON 对象发送回(这使得直接访问时非常无用),或者 B)将 GET 参数附加到 URL 并执行重定向参数不存在。

    $("#div1").load("test.php?ajax=1");
    

    <? 
    if( !isset( $_GET['ajax'] ) || $_GET['ajax']!=1 ) {
        header( "Location: index.php" );
        exit();
    }
    ?>
    

    【讨论】:

    • @jQuerybeast:感谢您的提醒——忘记了右方括号。现在应该好了。
    【解决方案2】:

    jQuery 的 AJAX 函数都发送一个带有 XMLHttpRequest 内容的 X-Requested-With 标头。你可以用它来做你想做的事,但不要把它用作反滥用功能——它被轻而易举地打败了。它应该只用于对偶然发现 URL 的用户有所帮助,或者向他们提供有用的错误页面,而不是 JSON 提要。

    【讨论】:

      猜你喜欢
      • 2011-06-10
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2013-01-25
      • 2012-07-28
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      相关资源
      最近更新 更多