JS URL - צריך לכלול סכמה? תלוי... עריכה: צריך!
-
תראו את הקוד הזה:
new URL('google.com/search')
זה מניב שגיאה של כתובת לא חוקית. נו, אולי בגלל שצריך לכלול את הסכמה (http)? בודאי, הנה ראיה:
new URL('http://google.com/search')
עובד!
אבל במהלך הפיתוח כל הזמן עבד לי ללא סכמה!!?!
שהתברר שהיה למחלקה החכמה דרך להבין שההתחלה היא שם דומיין וממילא למחול על העדר הסכמה. כי פשוט היה פורט:new URL('google.com:8888/search')
איך כתוב בחתימה של @clickone? אין טסט כמו פרודקשיין. -
תראו את הקוד הזה:
new URL('google.com/search')
זה מניב שגיאה של כתובת לא חוקית. נו, אולי בגלל שצריך לכלול את הסכמה (http)? בודאי, הנה ראיה:
new URL('http://google.com/search')
עובד!
אבל במהלך הפיתוח כל הזמן עבד לי ללא סכמה!!?!
שהתברר שהיה למחלקה החכמה דרך להבין שההתחלה היא שם דומיין וממילא למחול על העדר הסכמה. כי פשוט היה פורט:new URL('google.com:8888/search')
איך כתוב בחתימה של @clickone? אין טסט כמו פרודקשיין.@dovid
א. אם משתעמם לך נורא: https://url.spec.whatwg.org/#url-parsing
ב. כתבתשהיה למחלקה החכמה דרך להבין שההתחלה היא שם דומיין וממילא למחול על העדר הסכמהה
אני חושש שזה לא נדיבות או סלחנות...
תבדוק את ההבדל:console.table(new URL('google.com:8888/search'))
(index) Value origin 'null' protocol 'google.com:' pathname '8888/search' href 'google.com:8888/search' new URL('http://google.com:8888/search')
(index) Value origin 'http://google.com:8888' protocol 'http:' host 'google.com:8888' hostname 'google.com' port '8888' pathname '/search' href 'http://google.com:8888/search' -
@dovid
א. אם משתעמם לך נורא: https://url.spec.whatwg.org/#url-parsing
ב. כתבתשהיה למחלקה החכמה דרך להבין שההתחלה היא שם דומיין וממילא למחול על העדר הסכמהה
אני חושש שזה לא נדיבות או סלחנות...
תבדוק את ההבדל:console.table(new URL('google.com:8888/search'))
(index) Value origin 'null' protocol 'google.com:' pathname '8888/search' href 'google.com:8888/search' new URL('http://google.com:8888/search')
(index) Value origin 'http://google.com:8888' protocol 'http:' host 'google.com:8888' hostname 'google.com' port '8888' pathname '/search' href 'http://google.com:8888/search' -
@yossiz לא ייאמן...
לא, אני לא הולך לבדוק איך עובד הניתוח, למרות שאני מתוח למה הוספת הפורט הצילה משגיאה שחבל שלא מתרחשת!@dovid הזיהוי של JS לסיום פרוטוקול הוא לפי נקודתיים.
אם אין נקודתיים אז ברור לו שאין כתובת תקינה והוא יקפיץ שגיאה. במקרה שלך כפי שתראה בדוגמה ש @yossiz הביא החלק הראשון (דהיינו google.com: ) נהפך לפרוטוקול.
היות והדרישה כדי להקפיץ שגיאה של כתובת לא חוקית היא שלא יהיה מבנה כתובת חוקי. ברגע שהוא מצא פרוטוקול היות והוא לא יודע מה הכללים של פרוטוקול google.com הוא כבר לא יקפיץ שגיאה. -
@dovid הזיהוי של JS לסיום פרוטוקול הוא לפי נקודתיים.
אם אין נקודתיים אז ברור לו שאין כתובת תקינה והוא יקפיץ שגיאה. במקרה שלך כפי שתראה בדוגמה ש @yossiz הביא החלק הראשון (דהיינו google.com: ) נהפך לפרוטוקול.
היות והדרישה כדי להקפיץ שגיאה של כתובת לא חוקית היא שלא יהיה מבנה כתובת חוקי. ברגע שהוא מצא פרוטוקול היות והוא לא יודע מה הכללים של פרוטוקול google.com הוא כבר לא יקפיץ שגיאה.