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

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

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

החזרת JSONP ע"י השרת בC#

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

    האם למישהו יש ניסיון עם זה ויכול להמליץ איך כדאי להחזיר את הJSON כפונקציה ע"י השרת.
    ראיתי את החבילה הזאת.
    האם למישהו יש ניסיון איתה, או שממליץ על דרכים אחרות.
    ובכלל אשמח אם מישהו ירחיב את דעתי ויסביר לי (או יפנה אותי למקור שעושה סדר בכל הבלאגן..) מה ההבדל בין הדברים הבאים: WCF, API Controler WebService וכל הדברים הללו. האם חלק (WCFׂ) זה בעצם טכנולוגיות/פלטפורמות ישנות שיצאו משימוש?

    תודה רבה!

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

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

      jsonp זה סה"כ json עטוף בקריאה לפונקציה, ששמה יכול להיות קבוע או על פי פרמטר.
      הcontent-type הוא js רגיל. אז אתה יכול לכתוב ככה:

      public ActionResult Example(string callback)
      {
          var obj = new {a = 123};
          var json = Json.Encode(obj);
      
          return JavaScript(callback + "(" + json + ")");
      }
      

      @avr416

      ובכלל אשמח אם מישהו ירחיב את דעתי ויסביר לי (או יפנה אותי למקור שעושה סדר בכל הבלאגן..) מה ההבדל בין הדברים הבאים: WCF, API Controler WebService וכל הדברים הללו. האם חלק (WCFׂ) זה בעצם טכנולוגיות/פלטפורמות ישנות שיצאו משימוש?

      תודה רבה!

      Web Service זה מושג מופשט למערכת שבנוייה לקבל אינטראקציה מתוכנות - לא מאנשים. שזה אומר דילוג על החלק הויזואלי.
      יש הרבה דרכים שמממשים את הרעיון של web service. אחת מהם זה Web Api שזה גירסת ASP.NET MVC ממוקדת לצרכי API.

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

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

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

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

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

        @דוד ל.ט.

        jsonp זה סה"כ json עטוף בקריאה לפונקציה, ששמה יכול להיות קבוע או על פי פרמטר.
        הcontent-type הוא js רגיל. אז אתה יכול לכתוב ככה:

        public ActionResult Example(string callback)
        {
            var obj = new {a = 123};
            var json = Json.Encode(obj);
        
            return JavaScript(callback + "(" + json + ")");
        }
        

        עשיתי "העתק-הדבק" לקוד, אך משום מה זה לא עובד..
        בקונטרולר רגיל (שיורש מController), הוא מסמן לי שגיאה על המתודה Json.encode, וזה לשונו:

        'System.Web.Mvc.Controller.Json(object, string, System.Text.Encoding, System.Web.Mvc.JsonRequestBehavior)' is a 'method', which is not valid in the given context	
        

        בקונטרולר של API (שיורש מ System.Web.Http.ApiController) מלבד השגיאה הזאת הוא מסמן לי שגיאה גם על ה - JavaScript
        וכותב:

        The name 'JavaScript' does not exist in the current context.
        

        לגבי זה חשבתי שאולי זה מחמת התנגשות של מרחבי שמות system.web.mvc עם system.web.http כפי שאכן אירע לי לגבי דברים אחרים..
        אולם, אע"פ שמחקתי את הUsing של הhttp וצירפתי זאת מקומית למה שהיה צריך - זה לא עזר..
        אשמח לעזרה..
        תודה רבה רבה מראש!!

        פורסם במקור בפורום CODE613 ב18/11/2015 09:56 (+02:00)

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

          לגבי הבעיה הראשונה כתוב ככה:

          var json = System.Web.Helpers.Json.Encode(obj);
          

          אם לא עובד אז סימן שהספריה json.NET לא מותקנת.

          לגבי הבעיה השניה, אכן אין בWebApiControler פונקציה מובנית להחזרת JS. אז ידנית:

          public HttpResponseMessage Example(string callback)
          {
              var obj = new {a = 123};
              var json = Json.Encode(obj);
              var js = callback + "(" + json + ")";
              HttpResponseMessage response = Request.CreateResponse(System.Net.HttpStatusCode.OK, js, new TextPlainFormatter());
              response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/javascript");
              return response;
          }
          

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

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

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

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

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

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

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