由于PHP中缺少DEFINE变量,AJAX查询失败

时间:2011-06-19 18:20:22

标签: php jquery ajax

我是使用PHP的AJAX / jQuery的新手。

我正在尝试使用XMLHttpRequest或jQuery通过AJAX调用PHP脚本。在这两种情况下,调用都会失败,因为我调用的php文件在第一行包含以下检查

if (!defined("SOMETHING")) { die("Error. You cannot access this file directly");}

导致我的调用失败,因为在这种情况下没有定义此变量,因为我从外部调用。这个条件只是检查调用者是否是同一个Web应用程序,或者来自外部的调用(然后它将被拒绝)。

是否有解决方法而不删除此项检查?我能以某种方式使用AJAX / jQuery设置这个预期的变量吗?

有没有办法如何通过AJAX调用特定的PHP方法而不调用整个PHP文件?

提前致谢 托马斯

1 个答案:

答案 0 :(得分:2)

嗯......你可以做到,但我不确定这是否安全或你想要的方式。

你的jQuery应该发布一个GETPOST的变量,你应该在PHP端检查。如果您已收到该变量,请定义SOMETHING

这是你的jQuery,使用POST方法:

$.post('ajax.php', {SOMETHING: true}, function(ret){
    // do whatever you like with the return here
});

以下是您的PHP,如果收到包含变量SOMETHING的{​​{1}}请求,则会定义$_POST

SOMETHING