כבר דנו בזה בעבר פה - חפש cors בפורום
הטעות שלך היא שאתה צריך להחזיר את הheader הזה מהשרת ולא לשלוח אותו, לזה שאתה שולח אותו אין שום משמעות.
התורה על רגל אחת:
כשאתה שולח בקשה מהקוד שלך לכתובת שאינה הכתובת של הדף כלומר איננה שייכת לך, הדפדפן מוודא שהבעלים של התוכן ההוא מאשר לך להציג את התוכן שלו אצלך.
בשביל לשאול אותו את זה הדפדפן שולח קודם בקשת http ב method שנקרא options ומקבל מהשרת תשובה האם ואיפה להרשות את תצוגת התוכן, אם השרת לא החזיר header כזה בכלל זה אומר שהוא לא מרשה לאף אחד, וממילא הדפדפן חוסם את הקריאה, אם החזיר עם כוכבית אז הוא מרשה לכולם ואפשר כמובן לאפשר כתובת ספציפית עם ובלי wildcards.
אם אתה בעל השרת אתה צריך לגרום לשרת שלך להחזיר את ה header עם התשובה המתאימה ואיך לבצע את זה כבר תלוי בפלטפורמה של השרת.
Jsonp "עובד" על הדפדפן בכך שהוא משתמש בפירצה שהדפדפן כן יודע לטעון קבצי סקריפט ממקורות זרים ומביא קטע קוד שבעצם מביא בסוף את הdata אבל זה דורש response במבנה מסוים ולכן אם השרת לא שלך זה לא עוזר.
אפשר כמובן בצורה סיבובית לשלוח בקשה לשרת שלך ושם לבצע את הבקשה לשרת הזר ולהחזיר את המידע אליך לדף אבל אז ה request הוא מה ip שלך וזה יותר מאובטח כי בעצם המטרה של כל זה שלא יוכלו לתקוף את האתר שלך דרך דפדפנים של משתמשים תמימים.
לסיום, מכיוון שהפונקציונאליות הזו היא ברמת דפדפן אז יש תוספים שגורמים לדפדפן כן להציג הכל על ידי התערבות בresponse והוספת header כרצונך, כמובן שברוב המקרים אתה לא יכול לבקש מכל מי שיגלוש לאתר שלך שיתקין את התוסף לדפדפן שלו. חפש cors בחנויות התוספים.
פורסם במקור בפורום CODE613 ב28/01/2016 23:51 (+02:00)