2012-12-02 25 views
0

如何防止通常通过ajax加载的页面被加载?例如,如果在main.php中,您通过ajax“cart.php”加载并将其解析为本地div。当用户尝试直接加载cart.php时,用户是否会被重定向到main.php?阻止ajax元素在没有父项的情况下被加载

--comment:JavaScript是不是一种选择

+0

使用的.htaccess或php是可能的。查找htaccess重定向和PHP'$ _SERVER'用于ajax调用和'header location' – Steven

回答

1

如果页面通过AJAX加载这样您可以检测:

if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
     /* special ajax here */ 
     header("Location: http://www.example.com/main.php"); 
    } 
+0

注意'HTTP_X_REQUESTED_WITH'仅与某些主要ajax框架(如jQuery等)一起发送。它不是100%可靠的。 – Steven

+0

@Steven是的,我也注意到了这一点。我还没有将此脚本转换为jQuery,因此HTTP_X_REQUESTED_WITH不起作用。我会通过htaccess看看你的解决方案,或者只是通过ajax发送一个变量,然后在php脚本中检查它,如果它不存在则重定向... – bicycle

+1

使用jquery的另一个原因。 – itachi

相关问题