Secondo le specifiche HTML 4.0{:target="_blank" rel=“noopener”}:
- Se il metodo è GET, lo user agent prende il valore dell’azione, vi concatena un 
?e il data set del form, mediante il content-type application/x-www-form-urlencoded. In questo caso i dati del form sono vincolati a codici ASCII. - Se il metodo è POST, lo user agent effettua un submit HTTP POST utilizzando il valore dell’action e un messaggio creato in accordo con il content type specificato nell’attributo enctype.
 
Vantaggi dei POST JavaScript
- Effettuare redirect diversi all’action
 - Veicolare dati senza refresh della UI
 - Evitare query string troppo lunghe e URL poco leggibili
 
Esempio di submit POST
Inserire il seguente codice nella sezione <head> della pagina HTML:
<script>
function post(dictionary, url, method) {
    method = method || "post"; // default: POST
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", url);
    for (var key in dictionary) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", dictionary[key]);
        form.appendChild(hiddenField);
    }
    document.body.appendChild(form);
    form.submit();
}
</script>
Utilizzo
Nella sezione <body> della pagina HTML:
<script>
    var myDictionary = [];
    myDictionary["1stKey"] = "1stValue";
    myDictionary["2ndKey"] = "2ndValue";
</script>
<input type="button" value="Click me to POST"
    onclick="post(myDictionary, 'destination.html');" />
<input type="button" value="Click me to GET"
    onclick="post(myDictionary, 'destination.html', 'get');" />
La funzione post accetta un dizionario{:target="_blank" rel=“noopener”}, una destinazione URL, e opzionalmente il metodo (POST o GET, case-insensitive).
Alternativa con jQuery.post()
Se jQuery è già incluso nella soluzione, è possibile usare la funzione jQuery.post():
$.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
che rappresenta un’abbreviazione per la funzione $.ajax:
$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
Esempio con jQuery
$.post("test.php", { 1stKey: "1stValue", 2ndKey: "2ndValue" });
Ulteriori dettagli su jQuery.post(){:target="_blank" rel=“noopener”}.