我有一个只能通过ajax访问的操作。当有人直接以http://site.com/controller/action的身份访问网址时,如何让它显示空白? Zend有没有办法判断它是ajax调用还是直接url访问?
编辑:我发现了Zend的$this->getRequest()->isXmlHttpRequest()
,但我想知道这是否足够可信?
答案 0 :(得分:4)
没有办法可靠地告诉AJAX请求和任何其他类型的请求,所以不能阻止非AJAX访问。
答案 1 :(得分:1)
如果你正在使用jQuery,你可以检查它:
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
return die('No direct access allowed.');
}