jQuery.get( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )
ארגומנטים
jQuery.get( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )
$.ajax({ url: url, data: data, success: success, dataType: dataType });
פונקציה של קריאה חוזרת success מעבירה נתונים שחזרו, שיהיו אלמנט שורש של XML, מחרוזת טקטס, קובץ JavaScript, או אובייקט JSON, תלוי בסוג תשובה של MIME. היא גם שולחת סטטוס של תשובה.
החל מ jQuery 1.5, פונקציה של קריאה חוזרת success גם מעבירה אובייקט "jqXHR" (ב jQuery 1.4, היא העבירה אובייקט XMLHttpRequest). עם זאת, מאז JSONP ובקשות חוצות דפדפנים של GET לא משתמשים ב XHR, במקרים האלה פרמטרים (j)XHR ו textStatus הנשלחים לפונקציה של קריאה חוזרת לא מוגדרים.
$.get('ajax/test.html', function(data) { $('.result').html(data); alert('Load was performed.'); });
אובייקט jqXHR
החל מ jQuery 1.5, כל השיטות של jQuery Ajax מחזירות אובייקט מורחב של XMLHTTPRequest. זה אובייקט jQuery XHR, או "jqXHR", המוחזר על ידי $.get() מיישם את ממשק Promise, הוא נותן את כל המאפיינים, השיטות, ואת ההתנהגות של Promise (ראו אובייקט נדחה עבור מידע מלא). לנוחות ועקביות עם פונקציה קריאה חוזרת שמות, המשתמשים ב $.ajax(), הוא מספק שיטות .error(), .success() ו .complete(). השיטות האלה מקבלות ארגומנט של פונקציה המופעלת כאשר בקשה מסתיימת, ופונקציה מקבלת אותם ארגומנטים, בהתאם לשמות של פונקציה של קריאה חוזרת $.ajax().
ממשק Promise ב jQuery 1.5 גם מאפשר לשיטות jQuery Ajax, כולל $.get(), לחבר פונקציות מרובות של קריאה חוזרת .success(), .complete() ו .error() על בקשה היחידה, ואף מקצה פונקציות של קריאה חוזרת האלה אחרי שבקשה כבר הסתיימה. אם בקשה כבר הסתיימה, פונקציה של קריאה חוזרת מופעלת מייד.
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get("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.get()מחזירה קוד שגיאה, היא תכשל בדממה אלא אם התסריט מפעיל גם שיטה גלובלית.ajaxError(). החל מ jQuery 1.5, שיטה.error()של אובייקטjqXHRהמוחזר על ידיjQuery.get()גם נגישה עבור טיפול בשגיות. - תסריט ובקשות JSONP הם לא כפופים להגבלות של דומיין.
דוגמאות
דוגמה 1
מבקשת דף test.php, אבל מתעלמת מתוצאה שחוזרת.
$.get("test.php");
דוגמה 2
מבקשת דף test.php ושולחת מספר נתונים נוספים ( אבל עדיין מתעלמת מתוצאה שהתקבלה ).
$.get("test.php", { name: "John", time: "2pm" } );
דוגמה 3
שולחת מערכים של נתונים לשרת ( אבל עדיין מתעלמת מתוצאה שהתקבלה ).
$.get("test.php", { 'choices[]': ["Jon", "Susan"]} );
דוגמה 4
מציגה בהודעה תוצאה של בקשת דף test.php ( HTML או XML, תלוי במה שהוחזר ).
$.get("test.php", function(data){
alert("Data Loaded: " + data);
});
דוגמה 5
מציגה בהודעה תוצאה של בקשת דף test.cgi עם טעינת נתונים נוספים ( HTML או XML, תלוי במה שהוחזר ).
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
דוגמה 6
מקבל תוכן של דף test.php, שמוחזר בפורמט json(<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>).
$.get("test.php", { "func": "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json");

