PHP检测谁打开了该页面

时间:2010-12-24 02:19:26

标签: php javascript ajax

我用Google搜索了这个问题但我找不到答案。

我有一个由PHP生成的页面,它生成一个JSON字符串,我使用javascript / jQuery / AJAX来检索它。

如果用户直接通过PHP打开此后端页面但是如果通过AJAX检索它仍然可以正常工作,我希望显示一条消息。

这在PHP中是否可行,我将要做什么呢?

2 个答案:

答案 0 :(得分:5)

当然,只需检查标题即可查看请求:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'))
{
    /* Do something with the AJAX request */
}
else
{
    /* Do something else */
}

只需检查以确保您的服务器支持HTTP_X_REQUESTED_WITH。并非所有人都这样做,虽然我知道Apache 2确实如此。

答案 1 :(得分:1)

使用nonce跟踪请求的来源。

浏览器本身不需要(而且不需要,AFAIK)以与其他请求不同的方式识别AJAX请求。