detecção do lado do cliente do método de solicitação HTTP
-
02-07-2019 - |
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?
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