Rilevamento lato client del metodo di richiesta HTTP
-
02-07-2019 - |
Domanda
È possibile rilevare il metodo di richiesta HTTP (ad es. GET o POST) di una pagina da JavaScript? In tal caso, come?
Soluzione
In una parola - No
Altri suggerimenti
Non ci credo. Se hai bisogno di queste informazioni, ti suggerisco di includere un <meta>
elemento generato sul server che puoi controllare con JavaScript.
Ad esempio, con 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 hai bisogno di questa funzionalità, chiedi al server di rilevare quale metodo è stato usato e quindi modifica qualcosa nel DOM che puoi leggere in seguito.
Puoi controllare il referrer della pagina:
document.referrer == document.URL
Se è la stessa pagina è molto probabile che l'utente abbia inviato il modulo.
Naturalmente questo richiede
- che non si collega da una pagina a se stessa (che è comunque richiesto per l'accessibilità)
- che il modulo è inviato alla stessa pagina in cui si trova
- che l'utente non ha disabilitato il referrer
Non puoi farlo per un normale post / get ma puoi ottenere queste informazioni se usi una chiamata xmlhttp e usi getResponseHeader
Prova questo
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
}
Di solito funziona. Ad esempio per ottenere un parametro get chiamato test. Usa questo
getURIQueryString().test
Ma è impossibile ottenere una richiesta di post