我有一个只能通过ajax访问的操作。当有人作为http://site.com/controller/action直接访问url时,我如何让它给出空白输出?有没有办法让Zend知道这是一个ajax调用还是直接的url访问?
编辑:我发现了Zend的$this->getRequest()->isXmlHttpRequest()
,但我想知道这是不是足够可信?
发布于 2011-03-10 09:23:05
没有办法可靠地区分AJAX请求和任何其他类型的请求,所以不能阻止非AJAX访问。
发布于 2011-03-10 09:22:57
如果你使用的是jQuery,你可以像这样检查它:
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
return die('No direct access allowed.');
}
https://stackoverflow.com/questions/5257587
复制