Tiago Sampaio

main ai engineering career

engineering

1 min read

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

Written by

TS

Tiago Sampaio

Adobe Commerce & Magento 2 Expert

Senior developer with 15+ years building software. Writes practical fixes for Magento 2 and Adobe Commerce, and honest notes on growing as a developer.

$ git remote add inbox

Get new commits by email

New posts from both branches, engineering and career. No spam, unsubscribe any time.