在处理之前,我重写了一个magento控制器,有没有办法知道请求是否由Ajax发送?
谢谢
Magento使用类Zend_Controller_Request_Http作为其请求.
您可以使用
if ($this->getRequest()->isXmlHttpRequest()) { // is Ajax request }
以这种方式检测Ajax请求.
至少
>原型
> Scriptaculous
> jQuery
> YUI
> MochiKit
根据ZF docs发送HTTP_X_REQUESTED_WITH标头.
请注意,“Ajax请求”是指使用XmlHttpRequest发送的请求(并且不使用隐藏的< iframe> s或Flash上传者等技术)发送给我.
既然这是主观的,你的看法可能会有所不同:Magento本身似乎以比我更为扩展的方式来定义“Ajax”.看看Mage_Core_Controller_Request_Http :: isAjax():
public function isAjax() { if ($this->isXmlHttpRequest()) { return true; } if ($this->getParam('ajax') || $this->getParam('isAjax')) { return true; } return false; }
根据您对“Ajax”的个人看法,这可能(或可能不)更符合您的需求.