@שמואל
בסופו של דבר.. ואחרי כמה שעות ששברתי את הראש.. בדקתי מכיוון אחר את העניין ומה שיצא לי זה שהבאג לא אצל המפרסר של ימות אלא זה מגיע אליו לא בצורה הנכונה
אני מסביר בפירוט. למעוניינים במידע.
אמנם אני לא יכול להוריד פה מידע טכני ממש כי אני לא מבין באמת או יודע לעומק: אבל מה שיצא יצא:
כידוע אחד התווים שמייצגים שורה חדשה זה n\
ובעיקר ב-JS.
כאשר שולחים תווים כאלו בURL - הם חייבים להיות escaped כלומר - שיהיה להם שני בקסלאשים (במקום אחד) כלומר ככה n\\
למה זה חייב שני בקסלאש? יש לזה כמה סיבות (קשור כמובן לפרסור) ואני לא יודע אם אני יכול בכלל להתחיל להסביר אותן.
מה שאני רוצה שיובן זה ש:
אם אכן הגיע הסטרינג n\\
לשרת של ימות - הוא יעשה שורה חדשה
הבעיה היא אכן לשלוח את התו הזה. מה הבעיה? ככה: שהרי אנחנו צריכים לעשות urlencode (נגיד בגאווהסקריפט זה ככהencodeURI('string')
) לטקסט של ההודעה עצמה (כדי שיגיע לAPI. כיוון שהתקשורת עם הAPI היא כפרמטר בתוך הURL עצמה ולא כאיזה משהו בתוך הבקשה כגון JSON ב-body.)
כאשר מקודדים תו n\\
לURL - המקודד יהפוך אותו אוטומטית ל(מקודד ל-URL)-n\
. זה מצחיק אבל מי שמבין מבין שהמקודד עצמו גם מתייחס לבקסלאשים כפולים ומבין שהוא צריך למחוק אותם כי הם מיותרים ומיועדים רק עבורו שיבין שיש כאן תו מיוחד שהוצרכנו להעביר אליו.. (למי שמבין מה הרעיון של 'להגן' על תווים מיוחדים אלו על ידי בקסלאש כפול)
ובקיצור המקודד הורס לנו את n\\
ועושה לנו אותו n\
.
שכאשר מגיע לימות - משגע את המפרסר. ובצדק.
אז עכשיו השאלה - איך להכניס בכוח n\\
לבקשה ל-API ובצורה שתישאר עד שתגיע לימות בריאה ושלימה..
תשובה- אני מצטט משם קוד דוגמא:
var newline = "\n";
$('textarea.myclass').val('this is '+newline+' demo');
כך שבמקרה שלי אני עושה :
let newline = "\\" + "\\n"
ובכל מקום שאני רוצה שורה חדשה (בשלב שאני מקודד סטרינג לתוך הURL) אני דוחף newline
זה פתרון "handy" אני משער שזה הרבה יותר פשוט אבל אם זה עובד אין לי אפילו כוח או עניין לנסות משהו אחר...
ובעצם התשובה @שמואל על דבריך אלו:
לא ידוע לי על תווים שמוגבלים שם מהצד שלנו. - כמובן אם שולחים מקודד urlencode.
כמובן שכן יש תווים ש'מוגבלים מהצד שלכם' אבל הנושא הוא חוסר הבנה (כנראה של שנינו.. לפני שלמדתי הנושא בעל כרחי) מה הכוונה 'מהצד שלנו'.
התווים לא מוגבלים מהצד שלכם אלא מוגבלים מהגורם המכונה URL.. כאשר מתקשרים בדרך הזו של URL (ולא כמו שהזכרתי לדוגמא- שליחת כל הנתונים ב-JSON בתוך הbody) אנחנו מחוייבים גם בצד השולח וגם בצד המקבל - לקודד\לפרסר בהתאמה את הבקשה כURL מה שמחייב אותנו להרבה הגבלות של תווים (לא שהם מוגבלים, פשוט צריך לדעת איך לנווט כדי לשלוח אותם בבקשה)
וואי איזה ארוך
תודה לעוזרים תודה @שמואל