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

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

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

גישה לדומיין אחר JS

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

    אני מפעיל קובץ html מסייר הקבצים (לא לוקל הוסט)

    ויש בתוכו GET:

    $.ajax({
                    url: 'http://localhost:51342/ApiHotel.svc/GetAll/0',
                    header: 'Access-Control-Allow-Origin: *',
                    type: "GET",
                    dataType: "json",
                   
                    success: function (data) { console.dir(data),
                        alert("Data from Server" + JSON.stringify(data));
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        alert("You can not send Cross Domain AJAX requests: " + errorThrown);
                    }
                });
    

    אני מקבל את השגיאה הבאה:
    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

    אם אני משנה ל dataType :jsonp,

    אז אין את השגיאה הזו, אלא אני מקבל שגיאה אחרת על המסך: errorThrown: query 525662_6322623 was not called

    למה זה קורה אחרי שהוספתי:
    header: 'Access-Control-Allow-Origin: *',

    תודה רבה לעוזרים

    פורסם במקור בפורום CODE613 ב28/01/2016 22:47 (+02:00)

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

      כבר דנו בזה בעבר פה - חפש cors בפורום

      הטעות שלך היא שאתה צריך להחזיר את הheader הזה מהשרת ולא לשלוח אותו, לזה שאתה שולח אותו אין שום משמעות.

      התורה על רגל אחת:
      כשאתה שולח בקשה מהקוד שלך לכתובת שאינה הכתובת של הדף כלומר איננה שייכת לך, הדפדפן מוודא שהבעלים של התוכן ההוא מאשר לך להציג את התוכן שלו אצלך.
      בשביל לשאול אותו את זה הדפדפן שולח קודם בקשת http ב method שנקרא options ומקבל מהשרת תשובה האם ואיפה להרשות את תצוגת התוכן, אם השרת לא החזיר header כזה בכלל זה אומר שהוא לא מרשה לאף אחד, וממילא הדפדפן חוסם את הקריאה, אם החזיר עם כוכבית אז הוא מרשה לכולם ואפשר כמובן לאפשר כתובת ספציפית עם ובלי wildcards.
      אם אתה בעל השרת אתה צריך לגרום לשרת שלך להחזיר את ה header עם התשובה המתאימה ואיך לבצע את זה כבר תלוי בפלטפורמה של השרת.
      Jsonp "עובד" על הדפדפן בכך שהוא משתמש בפירצה שהדפדפן כן יודע לטעון קבצי סקריפט ממקורות זרים ומביא קטע קוד שבעצם מביא בסוף את הdata אבל זה דורש response במבנה מסוים ולכן אם השרת לא שלך זה לא עוזר.

      אפשר כמובן בצורה סיבובית לשלוח בקשה לשרת שלך ושם לבצע את הבקשה לשרת הזר ולהחזיר את המידע אליך לדף אבל אז ה request הוא מה ip שלך וזה יותר מאובטח כי בעצם המטרה של כל זה שלא יוכלו לתקוף את האתר שלך דרך דפדפנים של משתמשים תמימים.

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

      פורסם במקור בפורום CODE613 ב28/01/2016 23:51 (+02:00)

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

        @softs

        אם אתה בעל השרת אתה צריך לגרום לשרת שלך להחזיר את ה header עם התשובה המתאימה ואיך לבצע את זה כבר תלוי בפלטפורמה של השרת.

        השרת שלי הוא שירות WCF. איפה אני צריך להגדיר שהוא ישלח header?

        פורסם במקור בפורום CODE613 ב29/01/2016 00:41 (+02:00)

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

          @יאן גולד

          @softs

          אם אתה בעל השרת אתה צריך לגרום לשרת שלך להחזיר את ה header עם התשובה המתאימה ואיך לבצע את זה כבר תלוי בפלטפורמה של השרת.

          השרת שלי הוא שירות WCF. איפה אני צריך להגדיר שהוא ישלח header?

          חפש נא בגוגל
          WCF custom header
          ומתאים לך בעצם יותר ספציפי
          WCF Access-Control-Allow-Origin.

          תראה שאפשר להוסיף גלובלי בapp.config, אם כי במקרים מסויימים זה מהוה "מחדל בטחוני" :).

          פורסם במקור בפורום CODE613 ב31/01/2016 19:21 (+02:00)

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

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

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

            על פי ה app.config שציינת לי מצאתי את זה:

            http://stackoverflow.com/questions/20079813/how-to-make-cors-authentication-in-webapi-2

            אני לא יודע אם זה כלול במחדל הבטחוני אבל זה קצר ולענין 😛

            עכשיו GET אחד עובד מצוין ובשני אני מקבל:

            XMLHttpRequest cannot load file:///C:/ApiHotel.svc/GetReservations. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
            

            לא ברור לי עדיין מה ההבדל ביניהם, אם אתה מבין מהנ"ל ממה זה נגרם זה יעזור לי מאוד

            פורסם במקור בפורום CODE613 ב31/01/2016 20:49 (+02:00)

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

              אני מנחש שבאחד הכתובת יחסית (/ApiHotel.svc/GetAll/0) ובשני מוחלטת (http://localhost:51342/ApiHotel.svc/GetAll/0). צודק?

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

              אבחן את סבלנותך בשאלות:
              א. מה מטרת הפרוייקט? לימוד או לקוח וא"כ מה בגדול הוא צריך/דורש?
              ב. למה אתה פותח את דף הHTM ישירות מהתיקיה, וכי אתה תשלח את הדף הזה ללקוחות? למה אתה לא פותח ע"י הרצת הVS כמו "ילד טוב ירושלים"?

              בהצלחה רבה, אשמח להיות לך לעזר ולהחכימך ומקוה שיהיה לך את הפנאי לכך.

              פורסם במקור בפורום CODE613 ב01/02/2016 17:11 (+02:00)

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

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

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

                איזה ירי בכינון ישיר...

                צדקת אכן הכתובת היתה יחסית

                פורסם במקור בפורום CODE613 ב01/02/2016 19:45 (+02:00)

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

                  תשובה בפרטי

                  פורסם במקור בפורום CODE613 ב01/02/2016 20:44 (+02:00)

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

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

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

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