Rozmawialiśmy o GET w ostatnim filmie, ale nie poświęciliśmy wystarczająco dużo uwagi POST. Więc pomyślałem, że zrobimy to tutaj. Duża różnica w stosunku do POST polega na tym, że prawie zawsze musisz przekazać dane wraz z żądaniem. Te dane mogą przybierać różne formy, ale może to być po prostu obiekt, który masz w pobliżu. Składnia jest również prosta:
$.post( "/data/process.php", ( name: "Susan", job: "Writer" ) function(data, textStatus, jqXHR) ( // success ) );
Zwróć uwagę na drugi parametr, który jest obiektem (zasadniczo JSON) danych. Te dane mogą dotyczyć niemal wszystkiego (w tym ciągu znaków). Musisz przekazać to w sposób przydatny dla Twojego zaplecza.
Wracając do naszego przykładu formularza z ostatniego filmu, co by było, gdybyś chciał przekazać wszystkie dane z całego formularza? Nie chciałeś również aktualizować JavaScript, gdy zmienił się formularz. jQuery ułatwia to dzięki metodzie serialize (). Po prostu wywołaj to w samym elemencie formularza:
$("#my-form").serialize();
Spowoduje to przejrzenie całego formularza i utworzenie ciągu zapytania z każdego nazwanego wejścia w formularzu. Następnie możesz użyć tego jako danych, które przeszedłeś podczas $ .post ().
$("#my-form").on("submit", function() ( $.post( "/", $("#my-form").serialize(), function(data, textStatus, jqXHR) ( console.log("success"); ) ); ));
Zobacz Pen CtoEg autorstwa Chrisa Coyiera (@chriscoyier) na CodePen