Pergunta

É possível detectar o método de solicitação HTTP (por exemplo, GET ou POST) de uma página de JavaScript? Se sim, como?

Foi útil?

Solução

Em uma palavra - Não

Outras dicas

Eu não acredito que sim. Se você precisar dessas informações, sugiro incluindo um elemento <meta> gerado no servidor que você pode verificar com JavaScript.

Por exemplo, com PHP:

<meta id="request-method" name="request-method" content="<?php echo htmlentities($_SERVER['REQUEST_METHOD']); ?>">
<script type="text/javascript">
    alert(document.getElementById("request-method").content);
</script>

Se você precisar dessa funcionalidade, tem o servidor detectar qual método foi usado e, em seguida, modificar algo no DOM, que você pode ler mais tarde.

Você pode verificar referenciador da página:

document.referrer == document.URL

Se é a mesma página é bastante provável que o usuário enviou o formulário.

Claro que isso requer

  • que você não link de uma página para si (o que é necessário para a acessibilidade de qualquer maneira)
  • que o formulário é enviado para a mesma página que está em
  • que o usuário não desativar a referência

Você não pode fazer isso por um correio normal / get no entanto, pode chegar a esta informação se você usar uma chamada xmlhttp e usar o getResponseHeader

Tente este

function getURIQueryString(){
    var params = {};
    var qstring = window.location.toString().substring(window.location.toString().indexOf("?") + 1);
    var regex = /([^&=]+)=([^&=]+)/g;
    var m;
    while (m = regex.exec(qstring)){
        params[decodeURIComponent(m[1])] = decodeURIComponent(m[2])       
    }
    return params
}

Ele geralmente funciona. Por exemplo, para obter um parâmetros GET nomeado teste. Usa isto

getURIQueryString().test

Mas é impossível obter uma solicitação post

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top