הפעלת תמיכה ב-CORS ב-Endpoints

‫CORS (שיתוף משאבים בין מקורות) הוא מנגנון סטנדרטי שמאפשר לקריאות XMLHttpRequest ‏ (XHR) שמופעלות בדף אינטרנט ליצור אינטראקציה עם משאבים ממקורות שונים. בלי CORS, מדיניות המקור הזהה שאוכפת כל הדפדפנים תמנע בקשות ממקורות שונים. מידע נוסף על CORS מופיע במאמרי העזרה של Mozilla Developer Network (MDN).

תקן ה-CORS מחייב את לקוחות האינטרנט להנפיק בקשת קדם-הפעלה של CORS‏ OPTIONS כדי לקבוע אם שרת האינטרנט המבוקש תומך ב-CORS. אם שרת אינטרנט תומך בבקשת CORS, הוא יטפל בבקשת OPTIONS עם כותרות תגובה מתאימות של CORS.

טיפול ב-CORS באפליקציית ה-Backend

אם ה-Backend שלכם תומך ב-CORS, אתם יכולים להגדיר את ESP או ESPv2 כך שיעבירו את בקשת ה-CORS ל-Backend. אתם יכולים להפעיל העברה ישירה במפרט OpenAPI של ה-API שלכם, כמו שמוצג כאן:

swagger: "2.0"
host: "my-cool-api.endpoints.my-project-id.cloud.goog"
x-google-endpoints:
- name: "my-cool-api.endpoints.my-project-id.cloud.goog"
  allowCors: True

אפשר גם להפעיל העברה ב-OpenAPI 3.x spec עבור ה-API שלכם, כמו שמוצג כאן:

openapi: 3.0.4
servers:
- url: https://my-cool-api.endpoints.my-project-id.cloud.goog
  x-google-endpoint:
    allowCors: True

טיפול ב-CORS באמצעות ESP או ESPv2

אם ה-Backend שלכם לא תומך ב-CORS, אתם יכולים להגדיר את ESP או ESPv2 לטפל בבקשות CORS על ידי ציון דגלים להפעלה של CORS. בגישה הזו, בקשות קדם-הפעלה של CORS לא יעברו לאפליקציית ה-Backend שלכם. בנוסף, ESP או ESPv2 יצרפו את כותרות ה-CORS שהוגדרו לתגובות משירות לקצה העורפי כשצריך.

אלו אפשרויות ההפעלה של CORS שזמינות ל-ESP ול-ESPv2