Diferenciando entre uma solicitação de chamada / navegador Ajax
-
03-07-2019 - |
Pergunta
Existe algo no cabeçalho de uma solicitação HTTP que me permitiria diferenciar entre uma chamada AJAX e uma solicitação de navegador direto de um determinado cliente? As seqüências de agentes do usuário geralmente são iguais?
Solução
Se você usa protótipo, jQuery, mootools ou yui, você deve encontrar um X-Requestado com: XmlHttPrequest Cabeçalho que fará o truque para você. Deveria ser possível inserir o cabeçalho que você quiser em outras bibliotecas.
No nível mais baixo, dado um XmlHttPrequest ou objeto xmlhttp, você pode definir este cabeçalho com o setRequestHeader Método da seguinte forma:
xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
Outras dicas
Após algumas pesquisas, parece que a melhor abordagem seria simplesmente especificar uma string de agente de usuário personalizada ao fazer chamadas AJAX e verificando essa sequência de agente de usuário personalizada no servidor.