2013-04-13 81 views
0

我搜索了很多相关的问题的答案,其中没有真正解决我的问题HTTP_X_REQUESTED_WITH不存在,所以我有这样的代码:PHP:请求页面时用AJAX

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 

}else{ 
    echo("This page can't be accessed."); 
} 

我试图重新命名HTTP_X_REQUESTED_WITHHTTP_X_REQUEST_WITH,由于另一个问题的答案,我看到有时请求被发送为HTTP_X_REQUEST_WITH而不是HTTP_X_REQUESTED_WITH

但没有这些工作,这是很奇怪的,因为它前几天工作的...

+0

'print_r($ _ SERVER)'显示什么? –

+0

使用控制台的网页浏览器并查看发送了哪些标题。在所有浏览器中都会出现此错误? –

+0

它显示:http://pastie.org/private/qwuaj5rceadaumskrssnq 在哪里我可以检查哪些标题发送? – Debels

回答

1

AJAX请求不会自动获得HTTP_X_REQUESTED_WITH头。

jQuery和大多数其他库发送它,但如果您已经推出了自己的AJAX,则需要推出自己的HTTP_X_REQUESTED_WITH标头。

+0

我试着在AJAX请求中附加HTTP_X_REQUESTED_WITH标头,但它抛出和错误,我不知道为什么:/ – Debels

+0

那么,什么错误? – ceejayoz

0

对于主要的现代浏览器,HTTP_X_REQUESTED_WITH已更改为X_REQUESTED_WITH。 请注意,有些浏览器可能仍然使用HTTP_X_REQUESTED_WITH