למעשה הפיתרון הטוב ביותר להתמודד עם שגיונות הממשלה הוא כפי שהציע @dovid, להעביר את הבקשה דרך השרת
אתה שולח לשרת שלך את שם העיר, השרת שולח את הבקשה לשרת ה API, ומחזיר את התוצאות לקליינט
יוסף בן שמעון
-
API רחובות לפי שכונות\ שכונות לפי ערים -
API רחובות לפי שכונות\ שכונות לפי ערים@yyy כתב בAPI רחובות לפי שכונות\ שכונות לפי ערים:
כשאני שולח ישר מה-URL של הדפדפן זה תמיד עובד.
כי חסימת CROS מתרחשת רק בבקשות חוצות דומיינים, דהיינו כשאתה שולח בקשת AJAX מתוך אתר A לדומיין B, אם אתה פותח לשונית חדשה ומכניס את ה URL אין בעיה של CROS
-
API רחובות לפי שכונות\ שכונות לפי ערים@yyy כתב בAPI רחובות לפי שכונות\ שכונות לפי ערים:
כלומר מה שכתבת :
אין דרך בעולם לדעת אם קליינט שלח או שרת.
לכאורה אינו מדוייק, אמת?
כן מדוייק, כי חסימת CROS מתבצעת בדפדפן, השרת שמקבל את הבקשה לא יכול לדעת מי שולח הבקשה, הוא יכול להניח הנחוות על סמך הידרים, אבל אתה יכול לשים איזה הידרים שבא לך ולעבוד על השרת
-
API רחובות לפי שכונות\ שכונות לפי ערים@yyy כתב בAPI רחובות לפי שכונות\ שכונות לפי ערים:
כאשר הערכים שנשלחו בפרמטר של העיר הם
אבו קורינאת (שבט) --> תקין
ירושלים --> לא תקין
בית שמש --> תקין
בית שמש --> תקין
בית שמש --> תקין
ירושלים --> תקין
ירושלים --> לא תקין
ועוד כהנה וכהנה...
השגיאה היא מסוג CORS, כפי שניתן לראות.באמת תמוה, נראה באג (ממשלה בכל זאת)
לפעמים נשלח ההידר Access-Control-Allow-Origin פעם אחת בלבד, לפעמים הוא נשלח פעמיים עם תכנים שונים והדפדפן לא יודע איך להתמודד עם זה -
API רחובות לפי שכונות\ שכונות לפי ערים@yyy כתב בAPI רחובות לפי שכונות\ שכונות לפי ערים:
זה הקוד האנגולרי:
קח טיפ, עדיף לבנות את ה URL עם המחלקה המובנית בדפדפן, זה יותר אלגנטי ויותר קל לתחזוקה
const tmpUrl = new URL('https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith'); tmpUrl.searchParams.append('cityName', 'ירושלים'); console.log(tmpUrl.href)
-
API רחובות לפי שכונות\ שכונות לפי ערים@dovid כתב בAPI רחובות לפי שכונות\ שכונות לפי ערים:
ה אכן משונה, אולי זה קשור לפרוקסי של אנגולר (שזה רלוונטי במצב dev בלבד, בפרודקשיין הכל מתחיל ונגמר בדפדפן ולכן תמיד יהיה CORS)
הבקשה הזו לא עוברת דרך הפרוקסי של אנגולר, כי זו פניה ישירה לדומיין חיצוני, הפרוקסי עובד רק בפניה לדומיין של הפיתוח
-
API רחובות לפי שכונות\ שכונות לפי ערים@yyy אולי יש כאן איזה קצר תקשורתי
אתה מנסה לשלוח מהדפדפן בקשה ל API, לשם כך אתה משתמש בקליינט של אנגולר HttpClient?
ומה השגיאה שחוזרת? -
API רחובות לפי שכונות\ שכונות לפי ערים@yyy לא הבנתי, אתה מדבר על בקשה מהקליינט או מהשרת?
אולי תעלה קטע קוד איך אתה שולח את הבקשה -
API רחובות לפי שכונות\ שכונות לפי ערים@yyy כשהסרת את ההידר host זה לא עבד? אז כנראה זה ההידר שהוא מבקש, תנסה להוסיף אותו בבקשה מהשרת
-
API רחובות לפי שכונות\ שכונות לפי ערים@yyy למה החלטת שזה חסום לבקשות שרת? אם זה נחסם מיד בבקשה הראשונה זה אומר שחסר לך הידרים
-
מאקרו לוורד להוספת גרשיים בציטוט מפרוייקט השו"ת@dovid אתה ניגש לבעיה בראש של מתכנת, אבל לענ"ד כדאי ש @מעלה-ומוריד יכיר את העוצמה של המאקרו בלי לדעת מילה ב VBA
השלבים שאני הייתי עושה בלי להיות מתכנת VBA הם כך:- הקלדת מרכאה פותחת
- הדבקת הטקסט מהלוח
- חיפוש כלפי מעלה של רווח וסוגר פותח
- תזוזה ימינה
- הקלדת מרכאה סוגרת
- חיפוש כלפי מטה של סוגר סוגר
- תזוזה שמאלה
וזו התוצאה
Sub הדבק_עם_מרכאות() Selection.TypeText Text:="""" Selection.Paste Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " (" .Forward = False .Wrap = wdFindAsk End With Selection.Find.Execute Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="""" Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = ")" .Forward = True .Wrap = wdFindAsk End With Selection.Find.Execute Selection.MoveRight Unit:=wdCharacter, Count:=1 End Sub
-
המרת נתונים (php) כדי להכניס לpostgreSql@chagold כתב בהמרת נתונים (php) כדי להכניס לpostgreSql:
אבל האמת, אני צריך לעבור קורס בנושא הזרקות.
לא חייב, זה יכול לתרום אבל זה לא הכרחי, מה שחשוב זה להקפיד לא לסמוך על המשתמש בשום דבר, לא לקבל ממנו שום קלט בלי לטהר אותו לפני כן, אם אתה בונה שאילתה אל תשרשר את הקלט לתוך השאילתה, אלא תשתמש בכלים של טיהור וחיטוי
-
המרת נתונים (php) כדי להכניס לpostgreSql -
המרת (קידוד) טקסט מPHP לJS וחזרה@chagold כתב בהמרת (קידוד) טקסט מPHP לJS וחזרה:
ואם אפשר מראי מקומות לעשות את 4 ההמרות הנ"ל.
אם אתה ממיר ל JSON עם המתודה JSON.parse זה מטפל גם ב escaping
const str = '`"A"`'; const json = JSON.stringify({str}); console.log(json) // '{"str":"`\\"A\\"`"}'
תוכל להשתמש בפונקציה escape או encodeURI, שמטפלת בכל היוניקוד
// JS console.log(encodeURI('`"A"`)) // '%60%22A%22%60' console.log(decodeURI('%60%22A%22%60')) //'`"A"`' //PHP urlencode( '`"A"`'); // '%60%22A%22%60'' urldecode('%60%22A%22%60'); // '`"A"`'
-
שגיאה בשליחת API - אקסס@clickone כתב בשגיאה בשליחת API - אקסס:
גם אם יש ל @ארי סינון של רשימה לבנה, יש מצב שהוא הוצרך להתקין תעודת אבטחה, אחרת הסינון על הרשימה הלבנה לא יעבוד באתרים מאובטחים.
אני חושב שהסינונים של הספקים עם הרשימה הלבנה לא מסננים בתוך האתר, אלא רק ברמת הדומיין, וזה לא מצריך תעודת אבטחה
-
היכן מומלץ לאחסן אתר מבוסס node.jsבממשק סיפאנל בשרת שיתופי של chemicloud נתקלתי באופציה הזו:
אין לי מושג איך משתמשים בזה, אני לא יכול לעשות שם משחקים כי זה לא שרת שלי, אבל שווה לברר את זה
-
עזרה בלולאה על מערך בג'אווה סקריפט@hp079 ניסחת את השאלה כאחד שנמצא במעמקי הסיטואציה, כדי שגם אחרים יוכלו להבין את השאלה, כדאי שתפרט מה מבנה הנתונים של variableData, מה זה data, מה אתה מנסה לעשות בדיוק, מה אתה מצליח ומה אתה נכשל