logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

I metodi .get() e .post() Ajax

Nella scorsa lezione, abbiamo visto il metodo .load(). In questa lezione, vediamo come funzionano i metodi .get() e .post() di jQuery per le richieste Ajax.

Differenza tra GET e POST

GET e POST sono due tipi di richieste Ajax. Vediamo le differenze:

  • La richiesta GET è utilizzata principalmente quando si desidera recuperare risorse dal server. In questo caso, i dati sono inclusi direttamente nell'URL come parametri di query, e quindi sono visibili (ad esempio: pagina.php?nome=ugo).
  • La richiesta POST è utilizzata quando si devono inviare dati al server, ad esempio durante l'invio di moduli. A differenza di GET, i dati nella richiesta POST sono inclusi nel corpo della richiesta HTTP e non sono visibili nell'URL. Questo rende la richiesta POST più sicura per dati sensibili, in quanto l'utente non può visualizzare direttamente i dati trasmessi.

Il metodo .get()

Il metodo .get() viene utilizzato per eseguire richieste GET con Ajax. Ha la seguente sintassi di base:

$.get(url, dati, funzione, tipoDati). I parametri sono:

  • Il parametro url specifica l'URL della pagina da richiedere.
  • Il parametro dati (opzionale) specifica i dati da inviare alla pagina, se necessario.
  • Il parametro funzione (opzionale) specifica una funzione da eseguire una volta completato il caricamento.
  • Il parametro tipoDati (opzionale) specifica il tipo di dati atteso nella risposta (es. "json", "xml", "html", "text", ecc.).

Vediamo un esempio: abbiamo un file PHP che recupera il nome e stampa la scritta "Benvenuto, nome!".

saluto.php
<?php
// Ricevi il nome dal parametro GET
$nome = $_GET['nome'];

// Elabora una risposta
$risposta = "Benvenuto, $nome!";

// Restituisci la risposta al client
echo $risposta;
?>

Possiamo mandare il nome e ricevere una risposta dalla pagina saluto.php in questo modo:

<div id="risposta"></div>
   
<script>
  $(document).ready(function() {
    // Nome da inviare alla pagina PHP
    var nome = "Andrea";
    // Effettua una richiesta GET al file PHP
    $.get("saluto.php", { nome: nome }, function(data) {
      // La risposta dal server deve essere inserita nella pagina
      $("#risposta").text(data);
    });
  });
</script>

Nell'esempio, utilizziamo .text() per inserire la risposta nel <div>. Se non lo conoscevi, puoi leggere la lezione Cambiare il contenuto degli elementi.

Il metodo .post()

Il metodo .post() viene utilizzato per eseguire richieste POST con Ajax. Ha una sintassi simile a .get():

$.post(url, dati, funzione, tipoDati). I parametri da usare sono:

  • Il parametro url specifica l'URL della pagina da richiedere.
  • Il parametro dati (opzionale) specifica i dati da inviare alla pagina, se necessario.
  • Il parametro funzione (opzionale) specifica una funzione da eseguire una volta completato il caricamento.
  • Il parametro tipoDati (opzionale) specifica il tipo di dati atteso nella risposta (es. "json", "xml", "html", "text", ecc.).

Vediamo un esempio: l'utente inserisce la propria email in un form HTML. Il file PHP utilizza l'email per salvarla in un database:

salva_email.php
<?php
// Riceve l'email dal parametro POST
$email = $_POST['email'];

// Salvataggio dell'email nel database...

// Elabora una risposta
echo "L'email $email è stata salvata";
?>

Possiamo inserire la un'email e ricevere una risposta dalla pagina salva_email.php in questo modo:

<label for="inputEmail">Inserisci l'Email:</label>
<input type="text" id="inputEmail">
<button id="inviaEmail">Invia Email</button>
<div id="risposta"></div>
   
<script>
  $("#inviaEmail").on("click", function() {
    // Recupera l'email dall'input
    var email = $("#inputEmail").val();
    // Effettua la richiesta AJAX usando il metodo .post() 
    $.post("salva_email.php", { email: email }, function(data) {
      // Inserisci la risposta nel div
      $("#risposta").text(data);
    });
  });
</script>

Nell'esempio, possiamo recuperare il contenuto dell'input utilizzando il metodo .val(), che abbiamo visto nella lezione su come recuperare il contenuto degli elementi.

Nota: PHP è un linguaggio lato-server, quindi è necessario un server perché funzioni correttamente.

Prova!Completa gli spazi vuoti con il testo appropriato.
// Fai una richiesta GET alla pagina "esercizio.php" con jQuery
$.("");

Prova!Scegli l'opzione corretta tra quelle elencate.
// Fai una richiesta POST e ricevi i dati con jQuery
$.post("pagina.html", function(____) {
  $("#risposta").text(data);
});