העברת מידע בין שתי אפליקציות WEB דרך modal window - כיצד?

developerit

New member
העברת מידע בין שתי אפליקציות WEB דרך modal window - כיצד?

צהריים טובים
חדשה כאן, אשמח למענה:

האם יש דרך להקפיץ חלון שטוען דף asp מאפליקציית web אחרת, ולהחזיר אובייקט עם מידע לאפליקצייה הקוראת? אתן דוגמא:

נניח שיש לי אפליקצייה א' - חברת תרופות כלשהי
ואפליקציה ב' - אתר של בית מרקחת.

אני רוצה באתר בית המרקחת לאפשר קבלת מידע מתוך האתר של חברת התרופות באופן כזה: בלחיצה על פריט כלשהו באתר בית המרקחת, ייפתח modal window, המכיל דף asp מתוך אתר חברת התרופות, המאפשר בחירה לגבי סוג המידע הנדרש (עלון לצרכן, מידע כללי, וכו'). לאחר הבחירה ייסגר החלון והמידע יוצג באתר בית המרקחת.

אני צריכה להעביר מידע לשני הכיוונים: מאתר בית המרקחת, להקפיץ את החלון ולהעביר לדף את המספר הקטלוגי של התרופה לגביה מעוניינים לקבל מידע, ולהפך - מאתר חברת התרופות להחזיר אובייקט לאתר בית המרקחת, שמכיל DATA כלשהו בנוגע לתרופה.

כך שיש לי כאן 3 שאלות בעצם:
1. האם אפשרי בכלל? אם לא - יש אלטרנטיבה?
2. איך עושים את זה?
3. שאלת המשך - אם הייתי רוצה שאת התוכן שב- modal (נניח הדף שמקבל מס' קטלוגי, מאפשר לבחור את המידע הרצוי, ומחזיר אובייקט עם המידע) אוכל להטמיע בכל אתר אחר (נניח, לכל בית מרקחת) עם מינימום התאמות, מהי הדרך הטובה לעשות זאת?

* המקרה הוא להמחשה בלבד. בגדול השאלה לגבי ממשק העברת מידע מותנית בין שני אתרים, כשאף אחד מהם לא יכול לגשת ל- DB של האחר, וללא שום גורם מקשר אחר.

תודה מראש
 

Royi Namir

New member
אפשרי אבל לא כמו שאת חושבת

האתר של התרופות לא חושף שום פונקציות שאת יכולה להיעזר בהם
הדבר הכי טוב שאת יכולה לעשות זה לבנות בצד שרת אצלך קריאה WEBREUEST לאתר התרופות , לקחת את ה HTML שלו ( בעמוד המסויים הזה) שאותו תוכלי לקחת מ GOOGLE

ואז לעבד את ה HTML ולהחזיר לאתר שלך את המידע.

נ.ב.
אם האתר שם עושה את זה ב AJAX (מרנדר את המידע על ידי AJAX))- יהיה לך מאד לקבל את הHTMK שלו
 

developerit

New member
תודה, אבל אני לא בטוחה שזה יועיל.

אתה מציע שאשתול את ה- DATA בעמוד המקור.

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

אני צריכה לקבל אובייקט של מידע, כך שאוכל לדוגמא לשמור אותו ב- cookie או ב- session. זה לא מידע שאני אמורה להציג, אלא מידע שישמש אותי בכל מיני דפים או פונקציות באתר המקורי ("בית המרקחת")

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

בכל אופן, כשאני קוראת לדף דרך request, זה נפתח בטאב נפרד ולא כחלון קופץ (ב- IE היה modal dialog, וב jquery / css לא הצלחתי לטעון דף ASP אחר), וזה בעייתי כי:
1. אני לא יכולה לחזור לדף הקורא, ולהעביר אליו אובייקט.
2. מבחינת הנראות - זה לא כמו שאני צריכה.

אז אם נצא מתוך נקודת הנחה שאני חייבת לקבל מידע מהאפליקציה השניה, ושמבחינה ויזואלית עדיף שזה יהיה modal, האם יש לי אפשרות לבצע את זה?

מקווה שהבנתי את תשובתך נכון
 

אברהם109

New member
הכי טוב זה להשתמש בAPI

חסרים פה הרבה פרטים, אבל בגדול..
מה שאת צריכה זה לשלוח בקשה בAJAX או בכל פורמט אחר לכתובת הרצויה, נניח שהחלון עם הפרטים של התרופה נמצא בכתובת http://www.demosite.com/medicine ואת רוצה לקבל מידע על תרופה שהID שלה הוא 15, אז את פונה כך: http://www.demosite.com/medicine/15 ואז את התשובה שאת מקבלת (בין אם זה JSON או HTML או כל דבר אחר) את שותלת בתוך דף הHTML שלך (אם זה HTML) או בתוך טמפלייט שאת בונה עבור זה (אם זה JSON).
את יכולה לבנות דף עם כמה לחצנים (כמו עלון לצרכן/ מידע כללי וכדו'),כך שהלקוח יכול לבחור איזה מידע הוא רוצה לקבל, וכל לחצן פונה לכתובת אחרת מביא את המידע ושותל אותו בדף. כך הכי טוב לעשות למיטב הבנתי וידיעותי.
תבדקי אולי לאתר של חברת התרופות מספק API, וגם אם לא - את פשוט פונה לכתובת הרצויה, מקבלת את התשובה, מחלצת ממנה את מה שאת רוצה ושותלת את זה בדף שלך.
אפשרות נוספת (אם כי למיטב הבנתי פחות מומלצת) זה להשתמש ב - IFRAME. שזה בעצם מעין דפדפן בתוך דפדפן. כלומר דיב מסוים שבעצם מציג ללקוח ישירות את המידע מתוך האתר של חברת התרופות, כך שהוא כביכול גולש אצלך באתר, אך בעצם גולש ישירות בתוך האתר של חברת התרופות.
 

developerit

New member
תודה. מנסה לענות.

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

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

לגבי הרעיונות האחרים, כאמור - לשתול בדף / IFRAME לא יעזור לי, כי אני נדרשת לשמור את המידע שחזר כאובייקט, כדי שאוכל להשתמש בו באופן רוחבי באתר (כאן הדוגמא אכן לא מתאימה בכלל)

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

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

שוב תודה. אשמח למענה או לרעיונות.
 

Royi Namir

New member
אין אובייקט ולא יהיה לך

האתר שאת מנסה לקחת ממנו נתונים לא חושף API או במילים אחרות פונקציות התממשקות
אז בואי נפסיק לדבר על אובייקט כי לא יהיה לך
הדבר היחידי שאת יכולה לעשות ( באמת היחידי) זה אם יש לך את האתר שלך עם מוצר A , ואת רוצה לשלוח אותו לאתר ב' עם תשובות מתאימות למוצר A - אז את פשוט תצטרכי לפתוח IFRAME ( בהנחה שהוא לא שם XFRAMEOPTIONS - SAMEORIGIN) או בחלון חדש . אבל זה כל מה שתוכלי לעשות
לא תוכלי לקבל מידע בחזרה


הדבר היחידי שתוכלי לעשות זה
אתר שלך ---->מוצר A ------> פונה לשרת שלך ------> שעושה REUEST לאתר ב' ------> שולף אץ ה HTML שלו עבור מוצר A ------> מעבד -------> מחזיר לדף שלך את המידע הרלוונטי

זהו
 

developerit

New member
האתר שלי הוא "חברת התרופות". אני יכולה לחשוף API אם נדרש.

השאלה היא מה הדרך הנכונה לעשות את זה....

וסליחה שאני מתעקשת - אבל אין אפשרות ב- modal window?

תודה
 
הצערה אחרת ונראית לי טובה

האתר של חברת התרופות יכול לעשות דף שבו בוחרים את המידע הרצוי. אתרי בתי המרקחת יטמיעו אותו דרך IFRAME.
הבעיה לכאורה היא שאחרי שהמשתמש בחר את סוג המידע שהוא רוצה האתר של בית המרקחת לא יודע מה הוא בחר. הרעיון הוא שהדף הפנימי של חברת התרופות יכול לשלוח הודעות לדף שמכיל אותו. כך האתר של בית המרקחת יודע שמה הלקוח בחר ואיזה מידע או דף להציג לו.
https://davidwalsh.name/window-iframe
 

אריאל1210

New member
בלי להיכנס לדיזיין יותר מידי...

שני האתרים הם בשליטה שלך?
למה לא iframe ו postmessage לתקשורת ביניהם בצד לקוח?
 

developerit

New member
כרגע שניהם בשליטתי.

בהמשך (פרודקשן) לא בהכרח.

אבל לצורך ה- POC אני צריכה להוכיח היתכנות.

מה זה postmessage? (כמובם שאגגל, אבל אשמח לקצת רקע)

תודה.
 

Royi Namir

New member
אם שניהם בשליטתך ( דבר שלא הובן על ידי לפחות)

אז תוכלי להעביר מידע ע"י POSTMESSAGE שזה דרך להעביר דרך ה WINDOW - מידע. שימי לב שזה נתמך רק ב ie11+
 

developerit

New member
וב- chrome? firefox?

שאלה נוספת (בעקבות נסיונות ליצירת API)

איך יוצרים API עם שני פרמטרים ? גיגלתי, והתשובות לא עובדות (מקבלת שגיאה ב- route. אולי כי אני לא עובדת עם MVC?)
 
למעלה