ABA


"אפשר להחזיר json לjavascript אם קראתי לפונקציה דרך לינק"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21242 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21242
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   00:15   12.05.15   
אל הפורום  
  אפשר להחזיר json לjavascript אם קראתי לפונקציה דרך לינק  
 
   ערכתי לאחרונה בתאריך 12.05.15 בשעה 00:20 בברכה, fly
 
C# MVC

לחצתי על לינק שמביא אותי לפונקציה בקונטרולר

עכשיו אני רוצה להחזיר json לפונקציה מסוימת ב-javascript

ניתן לעשות דבר כזה?

נשמע לי לא הגיוני אבל האם אפשרי?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה שולח בקשת AJAX לקונטרולר ומחזיר אובייקט JsonResult (הוא יורש מ ActionResult) inno3D 12.05.15 00:52 1
     העניין שאני עושה את זה דרך כפתור submit ששולח לי את המודל fly 12.05.15 01:41 2
         לא ממש ברור מה אתה מתכנן לעשות.. inno3D 13.05.15 21:26 5
  כן. jsonp Zippo  12.05.15 01:46 3
     JSONP זה משהו אחר..זה לא הסנריו.. VeNom  12.05.15 08:48 4

       
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   00:52   12.05.15   
אל הפורום  
  1. אתה שולח בקשת AJAX לקונטרולר ומחזיר אובייקט JsonResult (הוא יורש מ ActionResult)  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   01:41   12.05.15   
אל הפורום  
  2. העניין שאני עושה את זה דרך כפתור submit ששולח לי את המודל  
בתגובה להודעה מספר 1
 
   ולאחר מכן אני רוצה לחזור לפונקציה בjs


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   21:26   13.05.15   
אל הפורום  
  5. לא ממש ברור מה אתה מתכנן לעשות..  
בתגובה להודעה מספר 2
 
   מה הכוונה לחזור לפונקציה JS אחרי שהלכת לקונטרולר..
אתה צריך לחזור ל VIEW מסוים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zippo 
חבר מתאריך 26.5.02
7921 הודעות
   01:46   12.05.15   
אל הפורום  
  3. כן. jsonp  
בתגובה להודעה מספר 0
 
לא משנה מה הסביבה. יכולת של JS לעשות eval לתגובה שחוזרת מהשרת.
דוגמא פשוטה:
GET <host>/user-id?callback=doWithUser
תשובה שהתקבלה:
;('{"doWithUser('{"username" : "fly
ואם אתה עושה על זה eval, פשוט הפעלת את הפונקציה doWithUser על הקלט שחזר...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   08:48   12.05.15   
אל הפורום  
  4. JSONP זה משהו אחר..זה לא הסנריו..  
בתגובה להודעה מספר 3
 
   ערכתי לאחרונה בתאריך 12.05.15 בשעה 08:56 בברכה, VeNom
 
הוא עובד רק ב GET ובד"כ עושים submit ל form בפוסט.
כמו שאמרת הוא מחזיר מחרוזת שבעצם היא פוקנציה עם "התוצאה" כפרמטר. אבל מישהו צריך להריץ אותה (במצב רגיל היא נעטפת בתגית של script ואז ה browser מבין שהוא צריך להריץ אותה).
ובקיצר jsonp זה מנגנון שמשתמשים בו בכדי לבצע cross domain requests ובעצם "מנצלים" את היכולת של ה browser לבקש scripts מדומיין אחר אבל לא לבצע ajax מדומיין אחר.

במקרה של פותח האשכול - מה שאתה מחפש זה ajax קלאסי.
למה אתה מתעקש על submit של form?
תבטל את ה submit ופשוט תבצע ajax עם התוכן של הform.
משהו כזה:



function yourSuccessCallback(res){
if(res.IsSuccess)
callYourMethod(res.Data);
else
handleErrors(res.Errors);
}


var formData = $("#formId").serializeArray();
$.post(url, formData, yourSuccessCallback);


אופציה נוספת היא להשתמש ב ajaxForm\ajaxSubmit של jquery form:


$("#formId").ajaxForm({url: yourUrl, type: 'post', success: yourSuccessCallback});

or

$("#formId").ajaxSubmit({url: yourUrl, type: 'post', success: yourSuccessCallback});


ההבדל בין ajaxform ל ajaxsubmit זה שב ajaxform אתה מריץ פעם אחת בעליה את השורה שכתבתי ובעצם שתלחץ על submit אז הוא מאחורי הקלעים יבין שהוא צריך לבצע ajax כאשר ajaxsubmit זה משהו שאתה צריך להפעיל ידנית בכל submit בדומה לדוגמא עם ה $.post.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net