Metodo post() di jQuery ajax

Esempio

Richiesta della pagina web test.php, ignora il valore di ritorno:

$.post("test.php");

Esempio TIY

Modifica il testo dell'elemento div tramite una richiesta AJAX POST:

$("input").keyup(function(){
  txt=$("input").val();
  $.post("demo_ajax_gethint.asp",{suggest:txt},function(result){
    $("span").html(result);
  });
});

Prova personalmente

Definizione e uso

Il metodo post() carica i dati dal server tramite una richiesta HTTP POST.

Sintassi

jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
Parametri Descrizione
url Obbligatorio. Specifica quale URL inviare la richiesta.
data Opzionale. Mappa o valore di stringa. Specifica i dati inviati insieme alla richiesta al server.
success(data, textStatus, jqXHR) Opzionale. Funzione di callback eseguita quando la richiesta ha successo.
dataType

Opzionale. Specifica il tipo di dati della risposta del server atteso.

Valutazione intelligente predefinita (xml, json, script o html).

Descrizione dettagliata

Questa funzione è una versione abbreviata di Ajax, equivalente a:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

A seconda del tipo MIME diverso della risposta, i dati restituiti passati alla funzione di callback success sono anche diversi, questi dati possono essere l'elemento root XML, stringa di testo, file JavaScript o oggetto JSON. È anche possibile passare lo stato di testo della risposta alla funzione di callback success.

Per jQuery 1.5, è anche possibile passare alla funzione di callback success: oggetto jqXHR(jQuery 1.4 trasmette l'oggetto XMLHttpRequest)。

La maggior parte delle implementazioni stabilisce una funzione success:

$.post("ajax/test.html", function(data) {
  $(".result").html(data);
});

in questo esempio si legge il frammento HTML richiesto e lo inserisce nella pagina.

Le pagine lette tramite POST non vengono cacheate, quindi jQuery.ajaxSetup() le opzioni cache e ifModified non influenzano queste richieste.

Commento:A causa dei limiti di sicurezza del browser, la maggior parte delle richieste "Ajax" rispettano la politica di origine; le richieste non possono recuperare dati con successo da domini, sottodomini o protocolli diversi.

Commento:Se la richiesta avviata da jQuery.post() restituisce un codice di errore, non ci saranno avvisi a meno che lo script abbia chiamato il globale metodo .ajaxError().error() del metodo di jqXHR restituito da jQuery.post() per jQuery 1.5 può anche essere utilizzato per la gestione degli errori.

oggetto jqXHR

Per jQuery 1.5, tutti i metodi AJAX di jQuery restituiscono un super-set dell'oggetto XMLHTTPRequest. L'oggetto jQuery XHR restituito da $.post() o "jqXHR," implements l'interfaccia convenzionale, conferendo tutte le proprietà, i metodi e i comportamenti convenzionali. $.ajax() Considerando la facilità e la coerenza dei nomi dei callback utilizzati, fornisce i metodi .error(), .success() e .complete(). Questi metodi utilizzano i parametri delle funzioni chiamate quando la richiesta termina, che accettano gli stessi parametri dei callback $.ajax() corrispondenti.

L'interfaccia convenzionale di jQuery 1.5 consente anche di collegare più funzioni di callback .success(), .complete() e .error() per lo stesso request jQuery Ajax, inclusi i callback assegnati dopo che la richiesta potrebbe essere già stata completata.

// Richiesta generata immediatamente dopo l'allocazione del gestore, ricorda che la richiesta è rivolta all'oggetto jqxhr
    var jqxhr = $.post("example.php", function() {
      alert("success");
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });
    // Eseguire altre operazioni qui
    // Impostare un'altra funzione di completamento per la richiesta sopra
    jqxhr.complete(function(){ alert("second complete"); });

Più esempi

Esempio 1

Richiedere la pagina test.php e inviare dati aggiuntivi insieme (ignorando ancora il valore di ritorno):

$.post("test.php", { name: "Bill", time: "2pm" } );

Esempio 2

Inviare un array di dati al server (ignorando ancora il valore di ritorno):

$.post("test.php", { 'choices[]': ["Jon", "Susan"] });

Esempio 3

Inviare dati del modulo tramite richiesta ajax:

$.post("test.php", $("#testform").serialize());

Esempio 4

Visualizza i risultati provenienti dalla pagina di richiesta test.php (HTML o XML a seconda del contenuto restituito):

$.post("test.php", function(data){
   alert("Data Loaded: " + data);
 });

Esempio 5

Inviare dati alla pagina test.php e visualizzare i risultati (HTML o XML a seconda del contenuto restituito):

$.post("test.php", { name: "Bill", time: "2pm" },
   function(data){
     alert("Data Loaded: " + data);
   });

Esempio 6

Ottieni il contenuto della pagina test.php e memorizzalo come oggetto XMLHttpResponse, quindi elaboralo con la funzione JavaScript process():

$.post("test.php", { name: "Bill", time: "2pm" },
   function(data){
     process(data);
   }, "xml");

Esempio 7

Ottieni il contenuto json restituito dalla pagina test.php:

$.post("test.php", { "func": "getNameAndTime" },
   function(data){
     alert(data.name); // Bill
     console.log(data.time); //  2pm
   }, "json");