jQuery ajax - μέθοδος post()

Παράδειγμα

Αιτήστε τη σελίδα test.php, αγνοήστε την επιστροφή της τιμής:

$.post("test.php");

Παράδειγμα TIY

Αλλάξτε το κείμενο του στοιχείου div μέσω αίτησης AJAX POST:

$("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 callback function διαφέρουν, μπορεί να είναι η ρίζα XML, η αλφαβητική αλυσίδα κειμένου, το αρχείο JavaScript ή το αντικείμενο JSON. Μπορείτε επίσης να μεταφέρετε στον success callback function την απάντηση κειμένου της απόκρισης.

Για το jQuery 1.5, μπορείτε επίσης να μεταφέρετε στον success callback function jqXHR 对象(στο jQuery 1.4 μεταδίδεται το αντικείμενο XMLHttpRequest)。

πλειοστάτοι εκτελέσεις καθορίζουν μια συνάρτηση success:

$.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() 使用的回调函数名称便利性和一致性的考虑,它提供了 .error(), .success() 以及 .complete() 方法。这些方法使用请求终止时调用的函数参数,该函数接受与对应命名的 $.ajax() 回调函数相同的参数。

jQuery 1.5 中的约定接口同样允许 jQuery 的 Ajax 方法,包括 $.post(),来链接同一请求的多个 .success()、.complete() 以及 .error() 回调函数,甚至会在请求也许已经完成后分配这些回调函数。

// 请求生成后立即分配处理程序,请记住该请求针对 jqxhr 对象
    var jqxhr = $.post("example.php", function() {
      alert("success");
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });
    // Εκτελέστε άλλες εργασίες εδώ
    // Εγκαταστήστε μια άλλη συνάρτηση ολοκλήρωσης για την παραπάνω αίτηση
    jqxhr.complete(function(){ alert("second complete"); });

Περισσότερες παραδείγματα

Παράδειγμα 1

Αιτηθείτε τη σελίδα test.php και αποστείλετε μαζί με δεδομένα (και εξακολουθήστε να αγνοείτε την επιστροφή του αποτελέσματος):

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

Παράδειγμα 2

Αποστείλετε δεδομένα μαζικής μεταφοράς στο διακομιστή (και εξακολουθήστε να αγνοείτε την επιστροφή του αποτελέσματος):

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

Παράδειγμα 3

Αποστείλετε δεδομένα φόρμας χρησιμοποιώντας αίτηση ajax:

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

Παράδειγμα 4

Εμφανίστε τα αποτελέσματα που προκύπτουν από την αίτηση στη σελίδα test.php (HTML ή XML, ανάλογα με το περιεχόμενο που επιστρέφεται):

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

Παράδειγμα 5

Αποστείλετε δεδομένα στη σελίδα test.php και εμφανίστε τα αποτελέσματα (HTML ή XML, ανάλογα με το περιεχόμενο που επιστρέφεται):

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

Παράδειγμα 6

Αποκτήστε το περιεχόμενο της σελίδας test.php και αποθηκεύστε το ως αντικείμενο XMLHttpResponse, και επεξεργαστείτε το με τη συνάρτηση JavaScript process():

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

Παράδειγμα 7

Αποκτήστε το περιεχόμενο json που επιστρέφεται από τη σελίδα test.php:

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