jQuery ajax - post() 方法

实例

请求 test.php 网页,忽略返回值:

$.post("test.php");

TIY 实例

通过 AJAX POST 请求改变 div 元素的文本:

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

亲自试一试

定义和用法

post() 方法通过 HTTP POST 请求从服务器载入数据。

语法

jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
参数 描述
url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType

可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script 或 html)。

详细说明

该函数是简写的 Ajax 函数,等价于:

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

根据响应的不同的 MIME 类型,传递给 success 回调函数的返回数据也有所不同,这些数据可以是 XML 根元素、文本字符串、JavaScript 文件或者 JSON 对象。也可向 success 回调函数传递响应的文本状态。

对于 jQuery 1.5,也可以向 success 回调函数传递 jqXHR 对象kwa jQuery 1.4 inaonekana kwa XMLHttpRequest mmoja).

kawaida kwa kubadilika kina kina inaamua ufunzi wa muda wa muda:

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

本例读取被请求的 HTML 片段,并插入页面中。

通过 POST 读取的页面不被缓存,因此 jQuery.ajaxSetup() 中的 cache 和 ifModified 选项不会影响这些请求。

注释:由于浏览器安全方面的限制,大多数 "Ajax" 请求遵守同源策略;请求无法从不同的域、子域或协议成功地取回数据。

注释:如果由 jQuery.post() 发起的请求返回错误代码,那么不会有任何提示,除非脚本已调用了全局的 .ajaxError() 方法。或者对于 jQuery 1.5,jQuery.post() 返回的 jqXHR 对象的 .error() 方法也可以用于错误处理。

jqXHR 对象

对于 jQuery 1.5,所有 jQuery 的 AJAX 方法返回的是 XMLHTTPRequest 对象的超集。由 $.post() 返回的 jQuery XHR 对象或 "jqXHR,"实现了约定的接口,赋予其所有的属性、方法,以及约定的行为。出于对由 $.ajax() Kwa hisia ya uharibifu na uadilifu wa jina la kikurana, inatufaaka .error(), .success() na .complete() method. Hizi method inatumia funzione inayotumika kama sababu ya kumaliza jukwaa, inapokea parametha ambazo zina uhusiano na parametha za funzione ya kikurana ya $.ajax() ambao zina jina linalojulikana.

jQuery 1.5 ina maktaba ya kufikia kwa mawasiliano ya Ajax, kuanzia jukwaa ya $.post(), ikiwemo mawasiliano ya .success(), .complete() na .error(), kwa hivyo ina kumwambia kwa heshima kwamba hii ina kumwambia kwamba hii inasikiliza kwa kumwambia kwamba tafiti hii inasikiliza

// Mfanyikia kwa kwakwepo, tukisaidia mshakani, tukumu kwenda hii tafiti kwa sababu hii ina kumwambia kwa heshima kwamba tafiti hii inasikiliza
    var jqxhr = $.post("example.php", function() {
      alert("success");
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });
    // Kufanya mazoezi mengine hapa
    // Kufungua mfunzo wa kufikia kwa mawasiliano wa juu
    jqxhr.complete(function(){ alert("second complete"); });

Mafano zaidi

Mfano 1

Kutumia tovuti test.php na kusaidia data ya ziada (kwa sababu ya mawakilishi wa mawakilishi):

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

Mfano 2

Kusaidia data ya mawakilishi kwa mawasiliano wa mawasiliano (kwa sababu ya mawakilishi wa mawakilishi):

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

Mfano 3

Kusaidia data ya fomu kwa mawasiliano wa ajax:

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

Mfano 4

Kutoa matokeo kutoka kwa tovuti ya matokeo test.php (HTML au XML, kuzingatia matokeo wa matokeo):

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

Mfano 5

Kusaidia data kwa tovuti test.php na kushikilia matokeo (HTML au XML, kuzingatia matokeo wa matokeo):

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

Mfano 6

Kufikia matokeo ya tovuti test.php, kusafishwa kama kitumiaji wa XMLHttpResponse na kusaidia kwa mfunzo wa JavaScript wa process():

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

Mfano 7

Kufikia matokeo ya fomu ya json ya matokeo ya test.php:

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