在我的网页中,我使用了几个php文件并使用ajax调用它们。与页面abc.html
类似,对example.php
进行了ajax调用,它通过post获取一些输入,从中计算出一些内容并将值返回给ajax success
函数。我想实现一种方法,如果用户想要example.php
直接访问http://somesite.com/example.php
,它应该将其重定向到其他页面,如错误页面或索引页面,而不会操纵对原始ajax调用的响应。
答案 0 :(得分:2)
进入你的PHP文件并修改为:
if (!empty($_POST['your_post_variable'])){
header("Location: index.php"); // or whatever page you like
exit();
}
else{ /* your code for when $_POST is submitted via ajax request */
}
如果有人直接使用该文件,他们的$ _POST将为空,并且会被重定向到该位置。
您应该使用!empty
代替isset
。 isset
对于$ _POST返回true,因为$ _POST数组是超全局的并且始终存在(设置)。
更好的方法也是使用$_SERVER['REQUEST_METHOD'] == 'POST'
。
一切顺利。