Menu
CoddyTech

מהו Origin

חלק מהיחידה REST APIs במסלול ה-Node.js של Coddy. שיעור 18 מתוך 25.

דפדפן מאפשר בדרך כלל ל-JavaScript של דף לקרוא תגובות API מהמקור שלו. כלל המקור הזה מונע מדף לקרוא בחופשיות נתונים מאתר אחר. ‏CORS, שיתוף משאבים בין מקורות, מאפשר לשרת להתיר זאת למקור אחר באמצעות כותרות תגובה.

לדף בדפדפן יש מקור: הסכמה, המארח והיציאה שלו יחד. נתיבים שונים באותו מקור יכולים לשתף API בלי הרשאת CORS. שינוי במארח, בהסכמה או ביציאה יוצר מקור אחר.

new URL('https://board.example.com/tasks').origin;
// 'https://board.example.com'
new URL('https://board.example.com/help').origin;
// אותו מקור

‏URL היא מחלקה מובנית שקוראת כתובת ומפרקת אותה לחלקים בעלי שמות. המאפיין origin שלה אינו כולל את הנתיב ואת השאילתה. כתובת הדף שסופקה מוגדרת מראש. התרגול הזה משווה בין מקורות; בשלב הבא שרת יוכל להעניק הרשאה ביניהם.

כותרת Origin של בקשה כבר מכילה את ערך המקור הזה; בשיעור הבא נקרא את הכותרת הזאת.

challenge icon

אתגר

קל

זהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערכו רק את exercise.js.

החזירו {"same":true} כאשר כתובת שסופקה היא מאותו מקור כמו הדף, אחרת החזירו false. שליחת {"address":"https://board.example.com/api/tasks"} באמצעות POST אל /result מחזירה true. שינוי https ל-http, שינוי המארח או שינוי היציאה מחזירים false. הכתובות בתרגיל הזה הן כתובות URL מוחלטות ותקינות.

הבקשה הראשונית GET /result משתמשת בדוגמה שסופקה {"address": "https://board.example.com/api/tasks"}. השתמשו ב-POST /result עם גוף JSON כדי לנסות קלטים אחרים.

נסו בעצמכם

const page = 'https://board.example.com/tasks';
export function exercise({ address }) {
    return { same: address === page };
}

כל השיעורים ביחידה REST APIs

תרגלו בעצמכם: Express אונליין