למה השכן לא יכול להיכנס לדירה שלכם עם המפתח שלו
למה הדפדפן חוסם בקשות מאתרים אחרים ואיך פותרים את זה.
הקוד עובד, ה-API עובד, הכל תקין — אבל ברגע שאתם נכנסים לדפדפן והוא שולח את הבקשה, פתאום זה נכשל. כמו להגיע לכניסה למועדון לבושים יפה ומתוקתקים עם כרטיס, ואז המאבטח אומר: "אתם לא ברשימה".
הדפדפן מגן עליכם — זה נקרא Same-Origin Policy. הכלל פשוט: אם האתר שלכם בכתובת אחת ומנסה לדבר עם שרת בכתובת אחרת, הדפדפן חוסם את זה אוטומטית. אחרת אתר זדוני היה יכול לשלוח בקשה לשרת בשמכם, עם הקוקיז ופרטי ההזדהות שלכם, בלי שתדעו.
עם CORS (Cross-Origin Resource Sharing) השרת אומר לדפדפן "מהכתובת הזאת מותר לך לדבר איתי". זה Header אחד בתגובה של השרת: Access-Control-Allow-Origin.
טיפ: הטעות שכולם עושים — לשים כוכבית (*) שמתירה לכולם. בפיתוח זה עובד, אבל ב-production זה מתכון לצרות. רשמו רשימה מדויקת של הכתובות המותרות.
"כוכבית ב-CORS זה כמו להגיד למאבטח 'תכניס את כולם, אל תבדוק'. בפיתוח זה עובד — ב-production זו פרצה."