Permitir Apenas Requisições Ajax á uma URL e Bloquear Acesso HTTP Direto no Controller do Magento

Alguma vez você já precisou criar um módulo em seu Magento e gostaria de fazer requisições Ajax para uma action de um controller específico, mas gostaria que só houvesse retorno se fosse uma requisição via Ajax?

Vou lhe mostrar este pequeno método que você pode colocar no seu Controller para que bloqueie requisições diretas via browser:

[php]

protected function _isAjaxRequest()
{
if(isset($_SERVER[‘HTTP_X_REQUESTED_WITH’]) && ($_SERVER[‘HTTP_X_REQUESTED_WITH’] === ‘XMLHttpRequest’)) {
return true;
}
$this->_redirect(”);
return;
}

[/php]

Este pequeno trecho de código pode ser útil caso você precise fazer o mesmo que eu precisei estes dias para um módulo que estava desenvolvendo.

Outra forma bastante prática é a seguinte:

[php]

/**
* Fora de um controller você pode fazer a seguinte verificação…
*/

if (!Mage::app()->getRequest()->isAjax()) {
return;
}

[/php]

Ou

[php]

/**
* Dentro do contexto de um controller…
*/

if (!$this->getRequest()->isAjax()) {
return;
}

[/php]

 

Até a próxima!

Tiago Sampaio

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s