Domanda

È possibile rilevare il metodo di richiesta HTTP (ad es. GET o POST) di una pagina da JavaScript? In tal caso, come?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top