ערכתי לאחרונה בתאריך 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.