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

jQuery.ajax( settings )

מחזירה: XMLHttpRequest
תיאור: מבצע בקשה אסינכרונית של (Ajax) HTTP .

ארגומנטים

jQuery.ajax( url, [ settings ] )

הוספה בגרסה: 1.5
מחרוזת המכילה URL שאליו בקשה נשלחת.
settings
מפתח/ערך
סט מפתח/ערך עבור הגדרות של בקשת Ajax. כל האופציות הן אופציאונליות, אין אופציות חובה.ערך ברירת מחדל ניתן להגדיר עבור כל אופציה באמצעות שיטה $.ajaxSetup().ראו להלן jQuery.ajax( settings ) עבור רשימה מלאה של הגדרות.

jQuery.ajax( settings )

הוספה בגרסה: 1.0
settings
מפתח/ערך
סט מפתח/ערך עבור הגדרות של בקשת Ajax. כל האופציות הן אופציאונליות, אין אופציות חובה.ערך ברירת מחדל ניתן להגדיר עבור כל אופציה באמצעות שיטה $.ajaxSetup().
acceptsMap
ברירת מחדל: תלוי ב- DataType
סוג תוכן הנשלח בכותרת הבקשה, שאומרת לשרת איזה סוג של תגובה הוא יקבל בחזרה. אם להגדרות דרוש שינוי, מומלץ לעשות זאת פעם אחת בשיטה $.ajaxSetup().
ברירת מחדל: true
בברירת מחדל כל הבקשות נשלחות אסינכרונית (כלומר ערך true). אם אתם צריכים לשלוח בקשות סינכרוני, תגדירו אופציה הזו ל- false. שימו לב, שבקשות סינכרוניות יכולות בזמן ביצוע בקשה לחסום דפדפן.
beforeSend(XMLHttpRequest)
פונקציה לשינוי של אובייקט XMLHttpRequest לפני שליחה. תשתמשו בה לפני הגדרת של כותרות משתמש וכו'. בתור ארגומנט מועבר XMLHttpRequest. זה אירוע Ajax. כדי לבטל בקשה יש להחזיר false בפונקציה.
ברירת מחדל: true, false עבור dataType 'script' ו- 'jsonp'
הוסף ב- jQuery 1.2, כדי לבטל מטמון דפים על ידי דפדפן תגדירו אופציה הזו ל- false.
complete(XMLHttpRequest, textStatus)
פונקציה שמתבצעת כל פעם אחרי סיום בקשת Ajax ( אחרי שהסתיימו success ו- error ). בתור ארגומנטים פונקציה מקבלת אובייקט XMLHttpRequest ומחרוזת שמתארת סוג של בקשה. זה אירוע Ajax.
contents(אוסף ב- 1.5)
מפת זוגות מחרוזת/ביטוי קבוע, הקובעים כיצד jQuery תנתח תגובה, בלהתחשב בסוג תוכן שלה.
contentType
ברירת מחדל: 'application/x-www-form-urlencoded'
כאשר שולחים נתונים לשרת, תציינו סוג של הנתונים. בברירת מחדל: "application/x-www-form-urlencoded", שמתאים לרוב המקרים. אם אתם מעבירים סוג תוכן ל- $.ajax(), אז הוא תמיד ישלח לשרת ( אפילו שנתונים לא נשלחו ).
context
אובייקט הזה ייוצר בקונטכסט של פונקציות קשורות של קריאה חוזרת של Ajax. לדוגמה, ציון של אלמנט DOM בהקשר לקונטכסט ייוצר קונטכסט עבור קריאה חוזרת מלאה, כמו:
$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});
converters(אוסף ב- 1.5)
ברירת מחדל: {"* text": window.String, "text html": true, "text json": jQuery.parseJSON, "text xml": jQuery.parseXML}
מפה של ממירים dataType-to-dataType. הערך של כל ממיר הוא פונקציה המחזירה את הערך השונה של התגובה
crossDomain(אוסף ב- 1.5)
ברירת מחדל: false עבור בקשות מאותו דומיין, true עבור בקשות בין הדומיינים
אם אתה רוצה בקשה crossDomain בכוח (כגון, JSONP) באותו דומיין, תגדיר את הערך crossDomain ל- true. זה מאפשר לבצע ניתוב שרתים מחדש לדומיין אחר
נתונים שנשלחו לשרת.אם הנתונים הם לא שורת מחרוזת, אז הם יהמרו למחרוזת של שאילתה.עבור בקשות מסוג GET נתונים מצורפים ל-URL.כדי למנוע את זה, תשתמשו באופציה processData. אובייקט צריך להיות מורכב מזוגות מפתח/ערך.אם ערך הוא מערךאז jQuery מסדר ערכים ששייכים לאותו מפתח, לדוגמה, {foo:["bar1", "bar2"]} הופך ל-'&foo=bar1&foo=bar2'.
dataFilter(data, type)
פונקציה שמשתמשת עבור עיבוד נתונים גולמיים של תשובה XMLHttpRequest. פונקציה מיועדת לעיבוד ראשוני של התשובה.אתם צריכים להחזיר נתונים טהורים.בתור ארגומנטים פונקציה מקבלט נתונים גולמיים משרת ופרמטר 'dataType'.
dataType
ברירת מחדל: ניחושים אינטלקטואלים (xml, json, script, or html)

סוג נתונים שאתם מצפים לקבל משרת.אם לא צוין אף סוג, jQuery יציין אותו לבד (או responseXML אוresponseText),בהתאם מסוג תשובה MIME (סוג XML MIME ייוצר XML, ב-1.4 JSONייוצר אובייקט JavaScript, ב-1.4תרחיש ייוצר תרחיש, והיתר יוחזר בתור מחרוזת).סוגים זמינים (תוצאה שמועברת בתור ארגומנט ראשון של הפונקציה שלכם success):

  • "xml": מחזיר מסמך XML, שניתן לעבד אותו באמצעות jQuery.
  • "html": מחזיר טקסט רגיל HTML; שמכיל תגים script.
  • "script": מעריך תשובה כי JavaScript ומחזיר אותו כטקסט רגיל.מבטל מטמון, אם אופציה "cache" לא בשימוש.שימו לב: זה הופך POST לתוך GETעבור בקשות של שרתים מרוחקים.
  • "json": מעריך תשובה כיJSON ומחזיר אובייקט JavaScript. ב-jQuery 1.4 ניתוח JSON נעשה בצורה מקפידה,כל JSON שלא מסודר בצורה טובה יופסל ותוצר הודעת שגיה.
  • "jsonp": טוען נתונים ב-JSON באמצעות JSONP. מצורפת "?callback=?" לסוף של הקישור כדי לציין פונקציה.(הוסף ב-jQuery 1.2)
  • "text": מחרוזת טקסט רגילה.
error(XMLHttpRequest, textStatus, errorThrown)
פונקציה שמופעלת כל פעם אחרי בקשהת Ajax שנכשלה.פונקציה מקבלת שלושה ארגומנטים:אובייקט XMLHttpRequest, מחרוזת מתארת סוג של שגיאה וארגומנט חריגה אופציונלי.ערכים אפשריים לארגומנט השני (בנוסף ל-null)הם"timeout", "error", "notmodified" ו- "parsererror". זה אירוע שגיאה.
ברירת מחדל: true
מגדיר האם צריך להפעיל מטפלים גלובליים של אירועי Ajax עבור בקשה הזו.ברירת מחדל היא true. כדי למנוע הפעלת מטפלים גלובליים כמו, ajaxStart או ajaxStop תגדירו ערך של אופציה הזו ל-false.זה שימושי לניהול אירועים שונים של Ajax.
headers(אוסף ב- 1.5)
ברירת מחדל: {}
מפת זוגות של כותרת נוספת מפתח/ערך עבור שליחה יחד עם בקשה. פרמטר הזה מוגדר לפני שפונקציה beforeSend מופעלת, לפיכך, כל הערכים המוגדרים בכותרות יכולים להיות מוחלפים מתוך הפונקציה beforeSend.
ברירת מחדל: false
מגדיר האם בקשה הייתה מוצלחת רק כאשר תשובה השתנתה מרגע של בקשה אחרונה.עקרון מבוסס על בדיקת כותרת Last-Modified. ערך ברירת מחדל הוא false, כותרת מתעלמת.ב-jQuery 1.4 הטכניקה הזו גם בודקת האם'etag' מצוין על ידי שרת כדי לתפוס נתונים שהשתנו.
isLocal(אוסף ב-1.5.1)
ברירת מחדל: תלוי במיקום של פרוטוקול נוכחי
מגדיר סביבה הנוכחית להיות מוכרת בשם "המקומי", (למשל, מערכת הקבצים), גם אם jQuery לא מזהה אותה ככזה בברירת מחדל. הפרוטוקולים הבאים מוכרים כיום בתור מקומים: קובץ, *-הארכה ויישומון. הפרוטוקולים הבאים מוכרים כיום בתור מקומי: סיומת הקובץ *- ו יישומון. אם הגדרת הצרכים isLocal שינוי, מומלץ לעשות זאת פעם אחת ajaxSetup דולר. () שיטה.אם הגדרת isLocal דורשת שינוי, מומלץ לעשות זאת פעם אחת בשיטה $.ajaxSetup().
מחליף שם של פונקציה קריאה חוזרת בבקשה של jsonp. ערך הזה נכנס במקום 'callback' בחלק 'callback=?' במחרוזת בקשה בתוך url עבור GET או נתונים עבור POST. לכן {jsonp:'onJsonPLoad'} משתנה ל-'onJsonPLoad=?' בעברה לשרת.
jsonpCallback
מגדיר שם של הפונקציה של קריאה חוזרת עבור בקשתjsonp. ערך הזה ישתמש במקום שם רנדומלי שנוצר אוטומטי על ידי jQuery. עדיף לאפשר ל-jQuery לייצר שם ייחודי, מכיוון שזה יאפשר לנהל בקשות בצורה קלה יותר ולספק פונקציה קריאה חוזרת ועיבוד שגיאות.אתם יכולים לציין פונקציה של קריאה חוזרת כשה תרצו מטמון של דפדפן יותר טוב של בקשות GET.
mimeType(אוסף ב- 1.5.1)
סוג mime, כדי לעקוב סוג mime של XHR.
password
סיסמה, שמשתמשת עבור בקשות זיהוי HTTP.
ברירת מחדל: true

בברירת מחדל, נתונים שהועברו לפרמטר data כאובייקט (מבחינה טכנית, הכל חוץ ממחרוזת)יעבדו וישתנו במחרוזת של בקשה, כדי להתאים לסוג נתונים בברירת מחדל - "application/x-www-form-urlencoded". אם אתם רוצים לשלוח מסמך DOMDocument, או נתונים מיוחדים אחרים, תגדירו אופציה הזו ל-false.

scriptCharset
רק לבקשות מסוג "jsonp" או "script" dataType ו- "GET". גורם לפרש בקשה כקידוד מסוים.דרוש כדי למצוא הבדלים בנתונים מקומיים ומרוחקים.
statusCode(אוסף ב-1.5)
מפה של קודים מספריים HTTP ופונקציות להיקרא כאשר לתגובה יש את הקוד המתאים. לדוגמה, יתריע כאשר סטטוס התגובה הוא 404:
$.ajax({
  statusCode: {
    404: function() {
      alert('page not found');
    }
  }
});
אם הבקשה היא מוצלחת, פונקציות של מצב הקוד מקבלות אותם הפרמטרים כמו פונקציה של קריאה חוזרת במקרה של ההצלחה; אם התוצאה היא שגיאה, הן מקבלות את אותם הפרמטרים כמו פונקציה של קריאה חוזרת במקרה של השגיאה.
success(data, textStatus, XMLHttpRequest)
פונקציה שמופעלת כל פעם אחרי בקשה של Ajax מוצלחת.פונקציה מקבלת שני ארגומנטים: נתונים משרת, שמעוצבים בהתאם עם פרמטר 'dataType'; מחרוזת שמתארת סטטוס, ואובייקט XMLHttpRequest (זמין מאז jQuery 1.4). זה אירוע Ajax.
timeout
מגדיר זמן מקומי של המתנה(באלפיות השנייה)עבור בקשה.זה דורס זמן המתנה גלובלי, אם היה מוגדר באמצעות $.ajaxSetup. לדוגמה, ניתן להשתמש בשיטה הזו כדי להגדיר לבקשה מסוימת יותר זמן המתנה, מאשר בקשות אחרות, שעבורם הגדרתם זמן לשניה אחת.ראו$.ajaxSetup() עבור זמן המתנה גלובלי.
traditional
תגדירו ערך ל-true אם ברצונכם להשתמש בסגנון מסורתי של סידור פרמטרים.
ברירת מחדל: 'GET'

סוג של בקשה לביצוע("POST" או "GET"), ברירת מחדל היא "GET". שימו לב: שיטות אחרות של בקשה HTTP, כמוPUT ו- DELETE, גם ניתן להשתמש כאן, אבל הן לא נתמכות על ידי כל הדפדפנים.

ברירת מחדל: דף נוכחי

מחרוזת מכילה URL עליו נשלחת בקשה.

username
שם של המשתמש שישתמש בתגובות לגישה בקשות אימות HTTP .
פונקציה קריאה חוזרת עבור ייצור של אובייקט XMLHttpRequest. בברירת מחדל נוצר ActiveXObject (IE), אחרת XMLHttpRequest. ניתן ליצורהיישום עצמי משופר של האובייקט XMLHttpRequest.לא ניתן לעשות זאת ב-jQuery 1.2.6וגרסאות מוקדמות יותר.
xhrFields(אוסף ב-1.5.1)

מפת זוגות fieldName-fieldValue כדי לקבוע על האובייקט יליד XHR. לדוגמה, אתה יכול להשתמש בו כדי להגדיר withCredentials ל- true עבור בקשות בין דומיינים במידת הצורך.

$.ajax({
   url: a_cross_domain_url,
   xhrFields: {
      withCredentials: true
   }
});

ב- jQuery 1.5, תכונה withCredentials אינה חלה על ילד XHR וכך בקשות CORS דורשות להתעלם מדגל הזה. מסיבה זו, אנו ממליצים להשתמש ב-jQuery 1.5.1+.

פונקציה $.ajax() ביסוד של בקשות של Ajax שנשלחו ל- jQuery. בדרך כלל אין צורך באופן ישיר להפעיל פונקציה הזו, כמו מספר חלופות ברמה יותר גבוהה, למשל $.get() ו- .load() זמינים ויותר קלים לשימוש. אם דרושים אופציות פחות נפוצות, לעומת ש- $.ajax() יכולה להשתמש ביותר גמישות.

יותר פשוט, את פונקציה $.ajax() ניתן להפעיל ללא ארגומנטים:

$.ajax();

שימו לב: הגדרות ברירת מחדל יכולות להיות גלובליות על ידי שימוש בפונקציה $.ajaxSetup().

דוגמה הזו, לא משתמשת באופציות, טעינת תוכן של דף הנוכחי, אבל לא עושה כלום עם תוצאה. כדי להשתמש בתוצאה, אנחנו יכולים להשתמש באחת מהפונקציות של קריאה חוזרת .

אובייקט jqXHR

אובייקט jQuery XMLHttpRequest (jqXHR) מוחזר באמצעות $.ajax() החל מ- jQuery 1.5 הוא הרחבה של אובייקט XMLHttpRequest של הדפדפן. לדוגמה, הוא מכיל תכונות responseText ו- responseXML, כמו גם השיטה getResponseHeader(). כאשר מנגנון העברה הוא משהו אחר מאשר XMLHttpRequest (לדוגמה, תג של תסריט עבור בקשה JSONP) אובייקט jqXHR מדמה פונקציונליות של XHR, במידת האפשר.

החל מ- jQuery 1.5.1, אובייקט jqXHR מכיל שיטה overrideMimeType() (הוא זמין גם ב- jQuery 1.4.x, אבל נמחק זמנית ב-jQuery 1.5). בשיטה .overrideMimeType() ניתן להשתמש בפונקציה של קריאה חוזרת beforeSend(), לדוגמה, עבור שינוי של סוג תוכן של כותרת התשובה:

$.ajax({
  url: 'http://fiddle.jshell.net/favicon.png',
  beforeSend: function( xhr ) {
    xhr.overrideMimeType( 'text/plain; charset=x-user-defined' );
  },
  success: function( data ) {
    if (console && console.log){
      console.log( 'Sample of data:', data.slice(0,100) );
    }
  }
});

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

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.ajax({ url: "example.php" })
    .success(function() { alert("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"); });

כדי להבטיח תאימות לאחור עם XMLHttpRequest, אובייקט jqXHR מספק את המאפיינים הבאים ושיטות:

  • readyState
  • status
  • statusText
  • responseXML ו/או responseText, כאשר הבקשה הבסיסית התקבלה עם XML ו/או טקסט, בהתאמה
  • setRequestHeader(name, value), אשר שונה מפונקציות סטנדרטיות, מחליפה ערך ישן לחדש, במקום איחוד של ערכים ישנים וחדשים
  • getAllResponseHeaders()
  • getResponseHeader()
  • abort()

לא מסופק מנגנון onreadystatechange, עם זאת, success, error, complete ו- statusCode מכסה את כל הדרישות המתקבלות על הדעת.

הערה: jqXHR.success() ו- jqXHR.error() יהיו מיושנות ב-jQuery 1.8 לטובת שימוש ב- jqXHR.done() ו- jqXHR.fail(). זה כדי למנוע בלבול לגבי שמות של פונקציות קריאה חוזרת.

פונקציות של קריאה חוזרת

אופציות beforeSend, error, dataFilter, success ו- complete מקבלות פונקציות של קריאה חוזרת, שמופעלות ברגעים מתאימים:

  1. beforeSend מופעלת לפני שבקשה נשלחה, ונשלח אובייקט XMLHttpRequest כפרמטר.
  2. error מופעלת עם בקשה לא הצליחה. הוא שולח אובייקט XMLHttpRequest, מחרוזת מציינת סוג של שגיאה, ואובייקט חריגה.
  3. dataFilter מופעלת במיקרה הצלחה. הוא מעביר נתונים שהתקבלו וערך dataType, וצריך להחזיר ( ניתן לשנות ) נתונים להבערה ל- success.
  4. success מופעלת אם בקשה הסתיימה בהצלחה. הוא מעביר נתונים שהתקבלו, מחרוזת שמכילה קוד מוצלח, ואובייקט XMLHttpRequest.
  5. complete מופעלת כשה בקשה הסתיימה, גם אם הצלחה או כישלון. הוא מעביר אובייקט XMLHttpRequest, וגם מחרוזת שמכילה success או קוד שגיאה.
כדי להשתמש ב-HTML שהוחזר, ניתן להפעיל מטפל success:
$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});
דוגמה פשוטה הזו, בדרך כלל, קל לטפל באמצעות .load() או $.get().

סוגי נתונים

פונקציה $.ajax() מבוססת על שרת, כדי להגיש מידע על נתונים שהתקבלו. אם שרת מקבל נתונים כי XML, תוצאה ניתן לקרוא באמצעות שיטות רגילות של XML או סלקטורים jQuery. אם זוהה סוג אחר, כמו HTML בדוגמה לעיל, נתונים יוגשו כטקסט.

מטופלי נתונים שונים ניתן להשיג באמצעות אופציה dataType. חוץ מ- xml פשוט, dataType יכול להיות html, json, jsonp, script, או text.

סוגים text ו- xml מחזירים נתונים ללא עיבוד. נתונים פשוט מועברים למטפל success, או דרך responseText או תכונה responseHTML של אובייקט XMLHttpRequest, בהתאם.

שימו לב: אנחנו צריכים להיות בטוחים שסוג MIME שדווח על ידי שרת ווב, תואם לבחירה שלנו של dataType. בפרט, XML חייב להיות צוין על ידי שרת כי text/xml או application/xml עבור תוצאות עקביות.

אם html צוין, כל JavaScript מוטבע בתוך מקור נתונים יבוצע לפני ש- HTML יוחזר כמחרוזת. באופן דומה, script יבצע JavaScript שהוחזר משרת, אחרי זה יוחזר סקריפט בעצמו כנתוני טקסט.

סוג json מעבד נתונים של קובץ שהתקבלו כאובייקט JavaScript ומחזיר אובייקט שנוצר כתוצאת נתונים. כדי לעשות זאת, הוא משתמש ב- JSON.parse() כאשר דפדפן תומך בה; אחרת הוא משתמש ב- Function constructor. נתוני JSON שימושים עבור העברת נתונים מובנים בדרך שקצרה ונוחה עבור עיבוד של JavaScript. אם נתונים שהתקבלו קיימים בשרת מרוחק, סוג jsonp ניתן להשתמש במקומו. סוג הזה מפעיל פרמטר של מחרוזת בקשת callback=? שצורף ל- URL; שרת צריך לשים לפני נתונים של JSON שם של הפונקציה קריאה חוזרת עבור בניית בקשה מסוימת של JSONP. אם שם של פרמטר שצוין נדרש במקום callback, הוא יכול להיות צוין עם אופציה jsonp עבור $.ajax().

שימו לב: JSONP זה הרחבה של פורמט JSON, נדרש איזה שהו קוד של שרת כדי לאתר ולטפל בבקשת מחרוזת פרמטר. מידע מלא על זה ניתן למצוא ב- מקור שימוש.

כשה נתונים מתקבלים משרת מרוחק ( שמאפשר להשתמש בסוגי נתונים script או jsonp ), פעולה מתבצעת באמתעות תג " title="תגי HTML"><script> במקום אובייקט XMLHttpRequest. במקרה הזה אף אובייקט XMLHttpRequest לא יוחזר מ- $.ajax(), וגם אף אחד לא ישלח למטפל של פונקציות, למשל beforeSend.

שליחת נתונים לשרת

בברירת מחדל, בקשות Ajax נשלחות באמצעות שיטה GET HTTP. אם שיטה POST דרושה, שיטה הזו ניתן לציין על ידי הגדרת ערך עבור אופציה type. אופציה הזאת משפיעה כיצד תוכן של data ישלח לשרת.

אופציה data יכולה להכיל גם מחרוזת של בקשה של טופס key1=value1&key2=value2, או מפה של טופס {key1: 'value1', key2: 'value2'}. אם אתם משתמשים באחרון, נתונים יהפכו לתוך מחרוזת שאילתה לפני שנשלחו. תהליך הזה ניתן לעקוף באמצעות הגדרה processData ל- false. תהליך יכול להיות לא רצוי אם אנחנו רוצים לשלוח אובייקט XML לשרת; במקרה הזה, אנחנו היינו רוצים לשנות אופציה contentType מ- application/x-www-form-urlencoded לסוג של MIME שמתאים יותר.

אופציות מתקדמות

אופציה global מונעת שימוש ב- .ajaxSend() למטפלים רשומים, .ajaxError(), ושיטות דומות מהפעלה, כשה בקשה הזו מפעילה אותם. זה יכול להיות שימושי, לדוגמה, לעצור טעינת מדד שמיושם עם .ajaxSend() אם שאילתות תכופות וקצרות. ראו תיאור של שיטות האלה מטה ליותר מידע.

אם שרת מבצע זיהוי HTTP לפני הגשת תשובה, זוג, שם של משתמש וסיסמה יכול להישלח דרך האופציות username ו- password.

בקשות Ajax מוגבלות בזמן, לכן שגיאות יכולות להיטפס ולהטפל כדי לתת ניסיון משתמש טוב יותר. שאילתה של פסק זמן, בדרך כלל, או נשארה בברירת מחדל או הוגדרה בתור ערך גלובלי בברירת מחדל באמצעות $.ajaxSetup() במקום לשנות שאילתות מסוימות עם אופציה timeout.

בברירת מחדל, שאילתות תמיד מונפקות, אבל דפדפן יכול להגיש תוצאות ממטמון. כדי לבטל שימוש בתוצאות ממטמון, תגדירו cache ל- false. כדי לקרוא בקשה עם הודעה על כישלון אם נכסים לא השתנו מבקשה אחרונה, תגדירו ifModified ל- true.

scriptCharset מאפשרת לסט של תווים להיות צוין במפורש עבור בקשות, שמשתמשות בתג " title="תגי HTML"><script> ( כלומר סוג של script או jsonp ). זה שימושי אם לסקריפט ולדף ראשי יש סטים תווים שונים.

פירוש של אות ראשונה ב- Ajax היא "אסינכרוני", זה אומר, שפעולות מתבצעות במקביל וסדר של פעולות לא מובטח. אופציה async ב- $.ajax() מוגדרת בברירת מחדל ל- true, מציין שביצוע קוד יכול להמשיך אחרי ששאילתה נעשתה. הגדרת אופציה הזו ל- false ( ולפיכך עושה קריאה לא אסינכרונית יותר ) מאוד לא מומלצת, מכיוון שזה יכול להיות סיבה שדפדפן יפסיק לענות לבקשות.

פונקציה $.ajax() מחזירה אוביייקט XMLHttpRequest, שהיא יצרה. בדרך כלל jQuery מטפל ביצירה אובייקט הזה בתוכו, ופונקציית משתמש עבור יצירת יחידה אחת יכולה להיות מוגדרת באמצעות אופציה xhr. אובייקט שמוחזר באופן כללי ניתן להשליך, אבל זה יספק רמה של הממשק נמוכה יותר עבור התבוננות ומניפולציה של השאילתה. בפרט, קריאה .abort() לאובייקט תעצור בקשה לפני הסיום.

דוגמאות

דוגמה 1

טוען ומפעיל קובץ JavaScript.
$.ajax({
   type: "GET",
   url: "test.js",
   dataType: "script"
 });

דוגמה 2

טוען כמה נתונים לשרת ומודיעה למשתמש על סיום פעולה.
$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });

דוגמה 3

מקבל גרסה אחרונה של דף HTML.
$.ajax({
  url: "test.html",
  cache: false,
  success: function(html){
    $("#results").append(html);
  }
});

דוגמה 4

טוען נתונים סנכרוני. חוסם דפדפן בזמן ביצוע בקשה. עדיף לחסום אינטראקציה עם משתמש באמצעות אמתעים אחרים כשה דרוש סנכרון.
var html = $.ajax({
  url: "some.php",
  async: false
 }).responseText;

דוגמה 5

שולח מסמך XML בתור נתונים לשרת. שינוי נתונים אוטומטי ניתן לבטל על ידי הגדרת אופציה processData ל- false.
var xmlDocument = [create xml document];
 $.ajax({
   url: "page.php",
   processData: false,
   data: xmlDocument,
   success: handleResponse
 });

דוגמה 6

שולח id בתור נתונים לשרת, שומר נתונים ומודיע למשתמש כשה פעולה הסתיימה.
bodyContent = $.ajax({
      url: "script.php",
      global: false,
      type: "POST",
      data: ({id : this.getAttribute('id')}),
      dataType: "html",
      success: function(msg){
         alert(msg);
      }
   }
).responseText;
האם מידע זה היה מועיל?
   

תגובות