אייר

איך למצוא תקלה שמתרחשת בתשובה של AJAX

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

***

הקדמה: התקלה הופיעה אמנם במערכת ה-Moodle אבל היא לגמרי תקלת JS, לכן אנשי JS, היו עימנו 🙂

שדרגנו לאחרונה את מערכת ה-Moodle שלנו, ופתאום הופיעה תקלה: כאשר ניסינו להוסיף שאלה בבוחן מתוך מאגר השאלות קיבלנו שגיאת JSON.

התקלה הייתה קריפטית ובלתי מובנת:

JSON.parse: unexpected character at line 1 column 1 of the JSON dada

הצלחנו לשחזור את התקלה בשרת הפיתוח, ושם קיבלנו הודעה קצת יותר מפורטת והבנו שהיא מתרחשת בקובץ ה-jquery שנשאב בליבה של מוודל. הרגשנו התקדמות, אבל לא גדולה – קובץ ה-jquery מכווץ וכן אי אפשר היה לדעת באיזו שורה מתרחשת התקלה. לכן שכפלתי את קובץ המקור (jquery-3.4.1.js) וקראתי לו jquery-3.4.1.min.js. ככה מקבלים מספר שורה קצת יותר הגיוני בהודעת השגיאה, והתקדמנו להבין שיש בעיה באיזושהי שאילתת AJAX.

אבל איך מדבגים תקלה בשאילתת AJAX? לאחר חיפושים רבים לנסות לאתר ממה נובעת התקלה נתקלתי בפוסט בפורום של moodle. בפוסט זה הוא מסביר שכדי לאתר מדוע מתרחשת שגיאה מהסוג הזה ניתן לבדוק מה חוזר מהשרת דרך טאב ה-network ב-Dev Tools ושם ככל הנראה תהיה איזו מחרוזת שגורמת לשגיאה של JSON.

לכן גלשנו שוב לעמוד עריכת הבוחן ופתחנו את ה-Dev Tools בטאב ה-network. מטבע הדברים הטאב היה מלא ברשימת כל הקבצים שנטענו. מחקנו את כולם עם איקיון האשפה כי אלה לא הקבצים שעניינו אותנו.

אחרי זה לחצנו על כפתור ההוספה ובחרנו מהתפריט את “ממאגר השאלות”. בשלב הזה הופיע קובץ חדש בטאב ה-network, הלא הוא מיודענו jquery-3.4.1.min.js.

נכנסתי לקובץ ה-jquery ע”י לחיצה על הקישור אליו, ולאחר מכן, בצד ימין של כלי הפיתוח נכנסתי לכרטיסיה response כדי לראות מה חוזר מהשרת:

זו השגיאה שחיפשתי והובילה אותי אל הפתרון.

העתקתי את תוכן השגיאה ל-notepad כדי שיהיה אפשר לעקוב אחר השתלשלות הדברים. כך עברתי מקובץ לקובץ כדי לנסות לאתר את המקום הבעייתי. בשלב מסוים ראיתי פניה לקובץ השייך לפלגאין שנקרא searchbytags. בדקתי וראיתי שהוא סומן אצלנו כפלגאין “אדום” – כלומר, פלגאין ישן מאוד שיתכן שיעשה בעיות. עצרתי את הבדיקה בקוד וניסיתי להסיר את הפלגאין.

ואכן, מחיקת הפלגאין פתרה את הבעיה והוספת שאלות מתוך מאגר השאלות חזר לעבוד. ווהו!

***

תודה רבה צופיה, על הטיפול המסור ועל הפוסט!

התמונה מאת Peggy und Marco Lachmann-Anke מתוך Pixabay

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.