Método post() do jQuery ajax

Exemplo

Solicite a página test.php, ignore o valor de retorno:

$.post("test.php");

Exemplo TIY

Mude o texto do elemento div através de uma solicitação AJAX POST:

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

Experimente você mesmo

Definição e uso

O método post() carrega dados do servidor através de uma solicitação HTTP POST.

Sintaxe

jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
Parâmetros Descrição
url Obrigatório. Determina para qual URL a solicitação será enviada.
data Opcional. Mapeamento ou valor de string. Determina os dados enviados junto com a solicitação para o servidor.
success(data, textStatus, jqXHR) Opcional. Função de callback executada quando a solicitação for bem-sucedida.
dataType

Opcional. Determina o tipo de dados de resposta esperado do servidor.

Padrão. Executa a decisão inteligente (xml, json, script ou html).

Descrição detalhada

Esta função é uma versão abreviada da função Ajax, equivalente a:

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

De acordo com os diferentes tipos MIME de resposta, os dados retornados passados para a função de callback success também são diferentes, esses dados podem ser o elemento raiz XML, string de texto, arquivo JavaScript ou objeto JSON. Também é possível passar o estado de texto da resposta para a função de callback success.

Para o jQuery 1.5, também é possível passar para a função de callback success: objeto jqXHRNo jQuery 1.4, é passado o objeto XMLHttpRequest).

A maioria das implementações determina uma função success:

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

Este exemplo lê o fragmento HTML solicitado e o insere na página.

As páginas lidas via POST não são cacheadas, portanto jQuery.ajaxSetup() as opções cache e ifModified não afetam essas solicitações.

Notas:Devido às restrições de segurança do navegador, a maioria das solicitações "Ajax" seguem a política de origem; as solicitações não podem ser executadas com sucesso de diferentes domínios, subdomínios ou protocolos.

Notas:Se a solicitação iniciada por jQuery.post() retornar um código de erro, não haverá nenhuma notificação, a menos que o script já tenha chamado o global método .ajaxError(). ou para a jQuery 1.5, o método .error() do objeto jqXHR retornado por jQuery.post() também pode ser usado para o tratamento de erros.

objeto jqXHR

Para a jQuery 1.5, todos os métodos Ajax da jQuery retornam um superconjunto do objeto XMLHTTPRequest. O objeto jQuery XHR retornado por $.post() ou "jqXHR," implementa o contrato de interface, conferindo-lhe todos os atributos, métodos e comportamentos约定. $.ajax() Pela consideração da conveniência e consistência dos nomes dos callbacks, ele fornece os métodos .error(), .success() e .complete(). Esses métodos usam como parâmetro de função o objeto de função chamado ao término da solicitação, que aceita os mesmos parâmetros dos callbacks $.ajax() correspondentes.

O contrato de interface da jQuery 1.5 permite que os métodos Ajax da jQuery, incluindo $.post(), liguem múltiplos callbacks .success(), .complete() e .error() para a mesma solicitação, mesmo que esses callbacks sejam atribuídos após a conclusão da solicitação.

// 请求生成后立即分配处理程序,请记住该请求针对 jqxhr 对象
    var jqxhr = $.post("example.php", function() {
      alert("success");
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });
    // Executar outras tarefas aqui
    // Definir outra função de conclusão para a solicitação acima
    jqxhr.complete(function(){ alert("second complete"); });

Mais Exemplos

Exemplo 1

Solicitar a página test.php e enviar alguns dados adicionais (ignorando ainda o valor de retorno):

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

Exemplo 2

Enviar um array de dados para o servidor (ignorando ainda o valor de retorno):

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

Exemplo 3

Enviar dados do formulário usando solicitação ajax:

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

Exemplo 4

Exibir o resultado da página de solicitação test.php (HTML ou XML, dependendo do conteúdo retornado):

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

Exemplo 5

Enviar dados para a página test.php e exibir o resultado (HTML ou XML, dependendo do conteúdo retornado):

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

Exemplo 6

Obter o conteúdo da página test.php e armazená-lo como objeto XMLHttpResponse, e processar com a função JavaScript process():

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

Exemplo 7

Obter o conteúdo json formatado retornado pela página test.php:

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