מהו 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 של בקשה כבר מכילה את ערך המקור הזה; בשיעור הבא נקרא את הכותרת הזאת.
אתגר
קלזהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערכו רק את 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 אונליין