Artigo original: https://www.freecodecamp.org/news/jquery-ajax-post-method/
Este método envia uma solicitação POST de http assíncrona para carregar os dados do servidor. Sua forma geral é:
jQuery.post( url [, data ] [, success ] [, dataType ] )
- url : é o único parâmetro obrigatório. Essa string contém o endereço para o qual a solicitação é enviada. Os dados retornados serão ignorados se nenhum outro parâmetro for especificado
- data : Um objeto simples ou string que é enviada ao servidor com a solicitação
- success : Uma função de callback que é executada se a solicitação tiver sucesso. Ela recebe os dados retornados como argumento. Também é passado o status textual da resposta.
- dataType : O tipo de dado esperado do servidor. O padrão é a estimativa inteligente, ou Intelligent Guess, em inglês (xml, json, script, text, html). Se esse parâmetro for fornecido, a callback de sucesso também deve ser fornecida.
Exemplos
$.post('http://example.com/form.php', {category:'client', type:'premium'});
solicita o arquivo form.php
do servidor, enviando dados adicionais e ignorando o resultado retornado
$.post('http://example.com/form.php', {category:'client', type:'premium'}, function(response){
alert("success");
$("#mypar").html(response.amount);
});
solicita o arquivo form.php
do servidor, enviando dados adicionais e tratando a resposta retornada (em formato json). Este exemplo pode ser escrito no seguinte formato:
$.post('http://example.com/form.php', {category:'client', type:'premium'}).done(function(response){
alert("success");
$("#mypar").html(response.amount);
});
O exemplo abaixo faz o post de um formulário usando Ajax e coloca os resultados em uma div
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.post demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form action="/" id="searchForm">
<input type="text" name="s" placeholder="Search...">
<input type="submit" value="Search">
</form>
<!-- O resultado da busca será renderizado dentro desta div -->
<div id="result"></div>
<script>
// Anexa um manipulador de envio ao formulário
$( "#searchForm" ).submit(function( event ) {
// Evita que o formulário faça seu envio normal
event.preventDefault();
// Obtém alguns valores dos elementos da página:
var $form = $( this ),
term = $form.find( "input[name='s']" ).val(),
url = $form.attr( "action" );
// Envia os dados usando post
var posting = $.post( url, { s: term } );
// Coloca os resultados em uma div
posting.done(function( data ) {
var content = $( data ).find( "#content" );
$( "#result" ).empty().append( content );
});
});
</script>
</body>
</html>
O exemplo abaixo usa a API do Github para fazer o fetch da lista de repositórios de um usuário com jQuery.ajax() e coloca os resultados em uma div
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Get demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form id="userForm">
<input type="text" name="username" placeholder="Enter gitHub User name">
<input type="submit" value="Search">
</form>
<!-- O resultado da busca será renderizado dentro desta div -->
<div id="result"></div>
<script>
// Anexa um manipulador de envio ao formulário
$( "#userForm" ).submit(function( event ) {
// Evita que o formulário faça seu envio normal
event.preventDefault();
// Obtém alguns valores dos elementos da página:
var $form = $( this ),
username = $form.find( "input[name='username']" ).val(),
url = "https://api.github.com/users/"+username+"/repos";
// Envia os dados usando post
var posting = $.post( url, { s: term } );
//Função do Ajax para enviar uma solicitação get
$.ajax({
type: "GET",
url: url,
dataType:"jsonp"
success: function(response){
//Se a solicitação for feita com sucesso, a resposta representará os dados
$( "#result" ).empty().append( response );
}
});
});
</script>
</body>
</html>
jQuery.ajax()
$.post( url [, data ] [, success ] [, dataType ] )
é uma versão curta da função do Ajax, equivalente a:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
$.ajax()
fornece muito mais opções, que podem ser encontradas aqui (texto em inglês)
Mais informações:
Para mais informações, visite o site da web oficial (em inglês)