русский  עברית
tadam logo
דוגמאות jQuery
מצאתם שגיאה?
סמנו אותה עם העכבר ותלחצו
Ctrl + Enter
בדיקת כתיב Xhtml.co.il
Orphus system

jQuery.post( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )

מחזירה: jqXHR
תיאור: טוען נתונים משרת באמצעות שיטה POST.

ארגומנטים

jQuery.post( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )

הוספה בגרסה: 1.0
השתנתה בגרסה: 1.5
מחרוזת, מכילה URL שאליו נשלחת שאילתה.
מפה או מחרוזת שנשלחת לשרת עם הבקשה.
success(data, textStatus, jqXHR)
פונקציה קריאה חוזרת שמופעלת כשה בקשה הסתיימה.
סוג נתונים שצפוי משרת.
זו פונקציה מקוצרת של Ajax, ששווה ל:
$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success
  dataType: dataType
});

פונקציה קריאה חוזרת success מעבירה נתונים שחזרו, שהם אלמנט שורש של XML ומחרוזת טקסט, תלוי מסוג MIME של התגובה. היא גם מעבירה סטטוס של הטקסט של תגובה שהתקבלה.
החל מ jQuery 1.5, פונקציה של קריאה חוזרת success גם מעבירה אובייקט jqXHRjQuery 1.4, היא העבירה אובייקט XMLHttpRequest).

רוב היישומים יציינו מטפל ביצוע מוצלח:

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

דוגמה הזו מקבלת דף HTML ומכניסה אותה בדף הנוכחי.

דפים שהתקבלו באמצעות POST מעולם לא במטמון, לכן לאופציות cache ו- ifModified ב- jQuery.ajaxSetup() אין השפעה על בקשות האלה.

אובייקט jqXHR

החל מ jQuery 1.5, כל השיטות של jQuery Ajax מחזירות אובייקט מורחב של XMLHTTPRequest. זה אובייקט jQuery XHR, או "jqXHR", המוחזר על ידי $.post() מיישם את ממשק Promise, הוא נותן את כל המאפיינים, השיטות, ואת ההתנהגות של Promise (ראו אובייקט נדחה עבור מידע מלא). לנוחות ועקביות עם פונקציה קריאה חוזרת שמות, המשתמשים ב $.ajax(), הוא מספק שיטות .error(), .success() ו .complete(). השיטות האלה מקבלות ארגומנט של פונקציה המופעלת כאשר בקשה מסתיימת, ופונקציה מקבלת אותם ארגומנטים, בהתאם לשמות של פונקציה של קריאה חוזרת $.ajax().

ממשק Promise ב jQuery 1.5 גם מאפשר לשיטות jQuery Ajax, כולל $.post(), לחבר פונקציות מרובות של קריאה חוזרת .success(), .complete() ו .error() על בקשה היחידה, ואף מקצה פונקציות של קריאה חוזרת האלה אחרי שבקשה כבר הסתיימה. אם בקשה כבר הסתיימה, פונקציה של קריאה חוזרת מופעלת מייד.

// Assign handlers immediately after making the request,
    // and remember the jqxhr object for this request
    var jqxhr = $.post("example.php", function() {
      alert("success");
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });

    // perform other work here ...

    // Set another completion function for the request above
    jqxhr.complete(function(){ alert("second complete"); });

הערות נוספות:

  • בשל מגבלות אבטחה בדפדפן, רוב הבקשות של "Ajax" תלויות ב כללים המגבילים את דומיין; בקשה לא יכולה לקבל נתונים מדומיין אחר, תת דומיין או פרוטוקול.
  • אם בקשה עם jQuery.post() מחזירה קוד שגיאה, היא תכשל בדממה אלא אם התסריט מפעיל גם שיטה גלובלית .ajaxError(). החל מ jQuery 1.5, שיטה .error() של אובייקט jqXHR המוחזר על ידי jQuery.post() גם נגישה עבור טיפול בשגיות.
  • תסריט ובקשות JSONP הם לא כפופים להגבלות של דומיין.

דוגמאות

דוגמה 1

מבקשת דף test.php, אבל מתעלמת מהתוצאות שחזרו.
$.post("test.php");

דוגמה 2

מבקשת דף test.php ושולחת מספר נתונים נוספים ( אבל עדיין מתעלמת מהתוצאות שחזרו ).
$.post("test.php", { name: "John", time: "2pm" } );

דוגמה 3

שולחת מערכי נתונים לשרת ( אבל עדיין מתעלמת מהתוצאות שחזרו ).
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });

דוגמה 4

שולחת נתוני טופס באמצעות בקשת ajax.
$.post("test.php", $("#testform").serialize());

דוגמה 5

מציגה בהודעה תוצאה של בקשה של דף test.php (HTML או XML, תלוי במה שחזר) .
$.post("test.php", function(data){
   alert("Data Loaded: " + data);
 });

דוגמה 6

מציגה בהודעה תוצאה של בקשה של דף test.php עם נתונים נוספים שנשלחו (HTML או XML, תלוי במה שחזר)
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     alert("Data Loaded: " + data);
   });

דוגמה 7

מקבלת תוכן של הדף test.php, שומרת באובייקט XMLHttpResponse ומפעילה פונקציה process().
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     process(data);
   }, "xml");

דוגמה 8

מקבלת תוכן של הדף test.php, שהוחזר בפורמת json
(<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>)
$.post("test.php", { "func": "getNameAndTime" },
   function(data){
     alert(data.name); // John
     console.log(data.time); //  2pm
   }, "json");
האם מידע זה היה מועיל?
   

תגובות