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); }); });
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");