ABA


"עזרה עם jquery ajax ו cookies.."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21188 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21188
Specter
חבר מתאריך 1.8.02
20205 הודעות
   17:17   06.04.15   
אל הפורום  
  עזרה עם jquery ajax ו cookies..  
 
   היי

אני מנסה לשלוח בקשת post לשרת שלי (python django) ששם מופעל מנגנון של CSRF,
כלומר עבור כל בקשת post עלי לצרף את ה token של ה csrftoken.

כאשר אני שולח בקשת post פעם ראשונה לשרת, קודם נשלחת בקשת OPTION שמחזירה לי את ה csrftoken, זה נראה כך:

ומיד אחר כך (באותה הבקשה) נשלחת בקשת POST לשרת שנכשלת מכיוון שלא הצלחתי לצרף את ה token ב header.
אני יודע איך לצרף את ה token ב header. הבעיה שלי היא שאני לא מצליח לגשת ל cookie שה OPTION מחזיר לי.

לא יודע אם זה משנה אבל זה cross domain request.

רעיונות?


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אם זו בקשת CORS, יש לך סט מאוד מצומצם של HEADERS שאתה יכול לשלוף: Ice Cold  06.04.15 17:40 1
     הכוונה לאלה? Specter 06.04.15 18:08 2
         המ... מוזר... אתה לא יכול להוציא את Set-Cookie עם ההדרים ששמת בשרת? Ice Cold  11.04.15 16:27 3
  ממה שאני מבין אתה רק צריך לשלוף את ה VeNom  13.04.15 09:30 4
     מכתב Specter 13.04.15 20:40 5
         המ... באפליקצית PHONEGAP שכתבתי אני כן משתמש ב-beforeSend: Ice Cold  14.04.15 14:43 6
             אני בדיוק עכשיו נכנס לקטע של PHONEGAP Specter 15.04.15 19:09 7
                 רק עכשיו ראיתי את התגובה... המ... Ice Cold  28.04.15 13:31 8

       
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   17:40   06.04.15   
אל הפורום  
  1. אם זו בקשת CORS, יש לך סט מאוד מצומצם של HEADERS שאתה יכול לשלוף:  
בתגובה להודעה מספר 0
 
http://www.w3.org/TR/cors/#terminology

תסתכל שם על הבלוק של Simple method


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Specter
חבר מתאריך 1.8.02
20205 הודעות
   18:08   06.04.15   
אל הפורום  
  2. הכוונה לאלה?  
בתגובה להודעה מספר 1
 
   Cache-Control
Content-Language
Content-Type
Expires
Last-Modified
Pragma

אם כך אני לא יכול לשלוף את ה Set-Cookie
מה הפתרון שלי?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   16:27   11.04.15   
אל הפורום  
  3. המ... מוזר... אתה לא יכול להוציא את Set-Cookie עם ההדרים ששמת בשרת?  
בתגובה להודעה מספר 2
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   09:30   13.04.15   
אל הפורום  
  4. ממה שאני מבין אתה רק צריך לשלוף את ה  
בתגובה להודעה מספר 0
 
   cookie ולהצמיד אותו להדר לפני שאתה שולח את בקשת ה CORS(כי הcookie לא יעבור לך בין דומיינים).

בקיצור הנה פונקציה שאמורה להביא לך את תוכן הcookie:



function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca;
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return "";
}

var cookieContent = getCookie('csrftoken');


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Specter
חבר מתאריך 1.8.02
20205 הודעות
   20:40   13.04.15   
אל הפורום  
  5. מכתב  
בתגובה להודעה מספר 4
 
   מכיר את הפונקציה getCookie שרצה הרבה ברשת, ניסיתי אותה מלא פעמים ולא הצלחתי - מחזיר NULL

כי ה Cookie בעצם נמצא רק בבקשת POST עצמה והוא לא נגיש לי מה domain שמימנו אני נמצא (localhost לצורך העניין)

או שאני עושה משהו לא נכון פשוט..


היו לי עוד כמה ניסיונות עם beforesend שגם לא צלחו
מעניין אם מישהו פה ניסה לממש csrf עם cors
כי מבחינה הגיונית זה לא אמור לעבוד כי זאת מטרת ההגנה של csrf -
למנוע מ domain אחר להכיל הפניה לשרת שלך, באמצעות זה שהוא לא יודע מה ה csrf שבעצם רק דרך ה domain שלך יש גישה אליו
ככה אני משאר..

תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   14:43   14.04.15   
אל הפורום  
  6. המ... באפליקצית PHONEGAP שכתבתי אני כן משתמש ב-beforeSend:  
בתגובה להודעה מספר 5
 

$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (Config.cookie != null) {
xhr.setRequestHeader("Cookie", Config.cookie);
}
}
});

אבל אפליקצית PHONEGAP לא עוברת ב-DOMAIN, הפרוטוקול שלה הוא file:// (אבל עדיין זו הייתה הדרך היחידה לשמור COOKIE).

Config.Cookie מגיע מקריאה ראשונה לשרת, וקבלת ה-COOKIE ממנה:


if (xhr.getResponseHeader('Set-Cookie') != null) {
Config.cookie = xhr.getResponseHeader('Set-Cookie');
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Specter
חבר מתאריך 1.8.02
20205 הודעות
   19:09   15.04.15   
אל הפורום  
  7. אני בדיוק עכשיו נכנס לקטע של PHONEGAP  
בתגובה להודעה מספר 6
 
   אולי שם אני אצליח לממש את זה

אגב יש איזה מדריך או טיפים טובים שאתה יכול לתת למתחיל עם PHONEGAP?
איזה PLUGINS הם MUST למשל..

תודה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   13:31   28.04.15   
אל הפורום  
  8. רק עכשיו ראיתי את התגובה... המ...  
בתגובה להודעה מספר 7
 
יש דברים שחייבים בכל אפליקציה, כמו dialogs,media,device,inappbrowser
שאלה מובנים של cordova, רק להתקין אותם וזהו.

יש אלפים של PLUGINS מפוזרים בכל הרשת, בהתאם לשימוש שאתה צריך...

דרך אגב, עכשיו אני רואה שב-Allow-Headers שלך אין Set-Cookie, מה שיכול להסביר למה אתה לא יכול לשלוף את זה...

@Specter@


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

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

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



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