דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. התממשקות לAPI שמציג HTML כמו מפות גוגל וכדו'

התממשקות לAPI שמציג HTML כמו מפות גוגל וכדו'

מתוזמן נעוץ נעול הועבר ארכיון code613m
13 פוסטים 3 כותבים 671 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avr416
    כתב ב נערך לאחרונה על ידי
    #1

    אני כותב ממשק משתמש, ואני מנסה שיוכלו לשלב אותו בתוך אפליקציה אחרת ככתבו וכלשונו.
    כלומר, אני לא רוצה שהAPI רק ישלח לי נתוני json וכדו', אלא שהוא ממש ישלח לי את כל התצוגה.
    בעצם שבאפליקציה השניה אני יגדיר דיב שבתוכו תוצג התצוגה שחוזרת מהAPI.
    עקרונית זה היה נראה לי ממש פשוט, פשוט לכתוב דיב עם ID מסויים, ולהגדיר בAJAX שאילתא לשרת הAPI עם הנתונים הנדרשים, ואת התצוגה המתקבלת לשתול בדיב הנוכחי.
    אלא שהבעיה שלי היא שהדפדפן חוסם פניה מדומיין אחד לדומיין אחר. לשם כך יש את האפשרות לבצע עקיפה תוך שימוש בהפניה לפונקציה וקבלת התשובה כחלק מהפונקציה (מה שנקרא JSONP), אולם אני רוצה לקבל HTML ולא JSON.
    האם יש לכך פתרון פשוט? או שאני חייב לבצע את השאילתא משרת לשרת?

    תודה רבה רבה!!

    פורסם במקור בפורום CODE613 ב21/12/2015 23:33 (+02:00)

    תגובה 1 תגובה אחרונה
    1
    • S מנותק
      S מנותק
      softs
      כתב ב נערך לאחרונה על ידי
      #2

      נשמע כמו iframe

      פורסם במקור בפורום CODE613 ב22/12/2015 02:55 (+02:00)

      תגובה 1 תגובה אחרונה
      1
      • A מנותק
        A מנותק
        avr416
        כתב ב נערך לאחרונה על ידי
        #3

        @softs

        נשמע כמו iframe

        אכן כן.
        הבעיה היא שניסיתי וזה מחזיר לי את השגיאה הבאה:
        Refused to display .... in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

        מגיגול הבנתי שהבעיה היא שהשרת חוסם אפשרות להריץ זאת בframe אחר בגלל שהוא מוגדר ל:SAMEORIGIN.

        מה שלא הצלחתי עדיין למצוא זה איך לשנות את ההגדרה בשרת כדי שאוכל להריץ זאת מכל קוד. אני משתמש בASP.NET MVC4

        תודה רבה רבה!
        צום מועיל לכולנו, שנתבשר בשורות טובות ישועות ונחמות.

        פורסם במקור בפורום CODE613 ב22/12/2015 09:42 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • A מנותק
          A מנותק
          avr416
          כתב ב נערך לאחרונה על ידי
          #4

          אוסיף שמצאתי בstackOverFlow את התשובה הבאה ניסיתי זאת וזה לא עבד.. 😮
          כמו כן ניסיתי את התשובה השניה המוזכרת שם באותו עמוד וגם היא לא עבדה..

          אשמח לעזרה, תודה רבה מראש!

          פורסם במקור בפורום CODE613 ב22/12/2015 10:13 (+02:00)

          תגובה 1 תגובה אחרונה
          0
          • S מנותק
            S מנותק
            softs
            כתב ב נערך לאחרונה על ידי
            #5

            אתה צריך להגדיר כך את האתר הראשון (הפנימי) ולא השני
            אולי טעית בזה?

            פורסם במקור בפורום CODE613 ב22/12/2015 11:21 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • A מנותק
              A מנותק
              avr416
              כתב ב נערך לאחרונה על ידי
              #6

              @softs

              אתה צריך להגדיר כך את האתר הראשון (הפנימי) ולא השני
              אולי טעית בזה?

              לא. הגדרתי כך את הראשון אבל זה לא עזר..

              פורסם במקור בפורום CODE613 ב22/12/2015 11:22 (+02:00)

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                jsonp. ואתה שם בו html. מה רע?

                פורסם במקור בפורום CODE613 ב22/12/2015 15:32 (+02:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                1
                • A מנותק
                  A מנותק
                  avr416
                  כתב ב נערך לאחרונה על ידי
                  #8

                  @דוד ל.ט.

                  jsonp. ואתה שם בו html. מה רע?

                  לא ברור לי בדיוק איך אני מבצע זאת בשרת.. וגם אח"כ אצל הלקוח..
                  אנסה זאת ונראה..

                  פורסם במקור בפורום CODE613 ב22/12/2015 19:10 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • S מנותק
                    S מנותק
                    softs
                    כתב ב נערך לאחרונה על ידי
                    #9

                    דוד, בדרך כלל אני משתדל שלא לחלוק עליך מכיון שאיני גדול ממנו בחכמה ובמנין וכו'
                    אבל כאן אני ממש לא מבין ולא יודע למה אתה דבק בקטע של לשים אפליקציה חיצונית בתוך DIV, זה פשוט לא יעבוד
                    את ה HTML אולי הוא יראה אבל שום דבר אחר לא יעבוד (מתי יקרה ready)?
                    הפתרון לזה הוא אך ורק IFRAME וזה שהוא לא מצליח לגרום לסרבר שלו לעבוד זה בעיה אחרת

                    אם הפרוייקט הוא רק לצרכי מחקר/לימוד אז יש תוסף לכרום ש"משפץ" את ה HEADER של ה CORS וזה חוסך ממך את הצורך למצוא את הבעיה בשרת שלך
                    https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

                    פורסם במקור בפורום CODE613 ב22/12/2015 23:58 (+02:00)

                    תגובה 1 תגובה אחרונה
                    2
                    • A מנותק
                      A מנותק
                      avr416
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @softs

                      דוד, בדרך כלל אני משתדל שלא לחלוק עליך מכיון שאיני גדול ממנו בחכמה ובמנין וכו'
                      אבל כאן אני ממש לא מבין ולא יודע למה אתה דבק בקטע של לשים אפליקציה חיצונית בתוך DIV, זה פשוט לא יעבוד
                      את ה HTML אולי הוא יראה אבל שום דבר אחר לא יעבוד (מתי יקרה ready)?
                      הפתרון לזה הוא אך ורק IFRAME וזה שהוא לא מצליח לגרום לסרבר שלו לעבוד זה בעיה אחרת

                      תודה רבה על העזרה!
                      ב' שאלות:
                      א. מדוע בAPI של גוגל מפות מספיק לעשות דיב ואני לא צריך להשתמש בiFame?
                      ב. כשאני מדבג בכרום אני רואה שאכן הheader מכיל את ה Access-Control-Allow-Origin:* ,
                      אולם כמו כן הוא מכיל את X-Frame-Options:SAMEORIGIN
                      אם כן נשאלת השאלה כיצד אני מסיר את הX-Frame-Options:SAMEORIGIN, כיון שבעטיו נזרקת השגיאה.

                      נ.ב.
                      יעויין בכתובת הבאה יש כאן אתר שכל עניינו הוא Cross-Origin Resource Sharing, ושם יש מדריכים מפורטים כיצד לאפשר את השאילתות לדומיין אחר.

                      תודה רבה רבה לכולם!!

                      פורסם במקור בפורום CODE613 ב23/12/2015 10:44 (+02:00)

                      תגובה 1 תגובה אחרונה
                      0
                      • A מנותק
                        A מנותק
                        avr416
                        כתב ב נערך לאחרונה על ידי
                        #11

                        ב"ה אחרי עמל ויגיעה נמצא הפתרון המיוחל.
                        בקובץ Global.asax צריך להוסיף את השורה הבאה:

                        AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
                        

                        שנמצאת במרחב השמות הזה: System.Web.Helpers;
                        הפתרון לקוח מכאן:
                        והוא נכון גם לMVC4 כיון שכמדומני אני עובד אם זה.. (אא"כ אני טועה ובטעות פתחתי MVC5..)

                        בכל אופן, נספק הסבר קצר:
                        כאשר שותלים בטופס AntiForgeryToken, כדי למנוע פרצת אבטחה מסוג CSRF.
                        אז באופן אוטומטי MVC4/5 מוסיפים את ההגדרה הבאה: X-Frame-Options:SAMEORIGIN כדי למנוע פרצת אבטחה שמישהו אחר ישתול את האתר שלך בתוך האתר שלו וכך יוכל לנטר את המידע שלך, ולבצע את הפעולות שהוא רוצה ע"י ההרשאות שלך, מה שנקרא - CSRF.
                        בהנחה שאנו כן רוצים לאפשר זאת, צריך להוסיף את ההגדרה שכתבתי למעלה.

                        תודה רבה רבה לכולם!!

                        פורסם במקור בפורום CODE613 ב23/12/2015 11:17 (+02:00)

                        תגובה 1 תגובה אחרונה
                        2
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @softs

                          דוד, בדרך כלל אני משתדל שלא לחלוק עליך

                          אם אתה רציני, אתה עושה עוול לי ולכולם. תמיד תחלוק ותחכים אחרת אלך כסומא בארובה. ואכן תודה לך גם על כל הפעמים שכבר החכמתי ממך..

                          @softs

                          אבל כאן אני ממש לא מבין ולא יודע למה אתה דבק בקטע של לשים אפליקציה חיצונית בתוך DIV, זה פשוט לא יעבוד
                          את ה HTML אולי הוא יראה אבל שום דבר אחר לא יעבוד (מתי יקרה ready)?
                          הפתרון לזה הוא אך ורק IFRAME וזה שהוא לא מצליח לגרום לסרבר שלו לעבוד זה בעיה אחרת

                          טעות שלי, לא שמתי לב לכותרת על גוגל מפות ודמיינתי נסיון לשלוח תצוגה חלקית של MVC לדומיין אחר (שבמחשבה שנייה זה גם משונה מאוד).

                          פורסם במקור בפורום CODE613 ב23/12/2015 13:20 (+02:00)

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          0
                          • A מנותק
                            A מנותק
                            avr416
                            כתב ב נערך לאחרונה על ידי
                            #13

                            הייתי שמח להבין מדוע א"כ בגוגל מפות אני לא משתמש בiframe אלא בסתם דיב פשוט? או שמאחורי הקלעים יש קוד JS שהופך אותו לiframs?
                            תודה רבה!

                            פורסם במקור בפורום CODE613 ב24/12/2015 19:59 (+02:00)

                            תגובה 1 תגובה אחרונה
                            0

                            בא תתחבר לדף היומי!
                            • התחברות

                            • אין לך חשבון עדיין? הרשמה

                            • התחברו או הירשמו כדי לחפש.
                            • פוסט ראשון
                              פוסט אחרון
                            0
                            • דף הבית
                            • קטגוריות
                            • פוסטים אחרונים
                            • משתמשים
                            • חיפוש
                            • חוקי הפורום