httpclient ב angular - שליחה בpost לא מקבל נתונים.
-
בס"ד
יש לי פונקציה ששולחת נתונים לשרת: user_name ן password
השרת לא מקבל את הנתונים.
וזה בשליחה אנגולרית post ב httpClient
משא"כ ב postman הוא מקבל את הנתונים ע"י שליחה ב params
והשרת מקבל אותם רק בquery
להלן מצורפת תמונת- שליחת הנתונים באנגולר:
זה אחרי הוספות שהציעו אנשים מרחבי העולם. אבל גם בלעדי ההוספות, התגובה הייתה אותו דבר. - התגובה בקונסול:
3.הדפסת הנתונים בצד שרת:
- התגובה בטרמינל:
תודה רבה לכולם
- שליחת הנתונים באנגולר:
-
בס"ד
יש לי פונקציה ששולחת נתונים לשרת: user_name ן password
השרת לא מקבל את הנתונים.
וזה בשליחה אנגולרית post ב httpClient
משא"כ ב postman הוא מקבל את הנתונים ע"י שליחה ב params
והשרת מקבל אותם רק בquery
להלן מצורפת תמונת- שליחת הנתונים באנגולר:
זה אחרי הוספות שהציעו אנשים מרחבי העולם. אבל גם בלעדי ההוספות, התגובה הייתה אותו דבר. - התגובה בקונסול:
3.הדפסת הנתונים בצד שרת:
- התגובה בטרמינל:
תודה רבה לכולם
@avi-rz אמר בhttpclient ב angular - שליחה בpost לא מקבל נתונים.:
השרת לא מקבל את הנתונים.
אתה שלחת את הנתונים ב-body. בשרת ה-body הוא undefined, אולי אתה לא משתמש ב-body-parser?
express לא נותן לך body בברירת מחדל. צריך לייבא את המודול ולהשתמש בו.const bodyParser = require('body-parser'); app.use(bodyParser.json());
בנוסף, השרת מצפה לקבל את השם משתמש וסיסמה ב-query אם כן צריך לעשות את זה ככה:
return this.http.post(`//localhost:3000/users/sessions/add/?username=${user_name}&password=${password}`, null, { headers });
- שליחת הנתונים באנגולר:
-
@yossiz לפי שתי ההערות הנכונות שלך צריך להיות שגיאה בצד שרת, ותשובה של 500 ללקוח.
מהצילומי מסך נראה שהשגיאה היא בצד לקוח והבקשה לא נשלחת (שהרי אין שגיאת רשת בקונסול).@dovid
(זה קצת בזבוז לעסוק בניחושים... אבל) בחלק של הקוד של צד השרת שחשוף לנו אין סיבה לשגיאה. מהסטאק בצילום של הקונסול נראה שהשגיאה לא קורה בפונקציית השליחה. אני מנחש (מבלי להכיר את ה-SessionsService של אנגולר) שהשגיאה קורה אחרי קבלת התשובה (הריקה, מן הסתם). -
@avi-rz אמר בhttpclient ב angular - שליחה בpost לא מקבל נתונים.:
השרת לא מקבל את הנתונים.
אתה שלחת את הנתונים ב-body. בשרת ה-body הוא undefined, אולי אתה לא משתמש ב-body-parser?
express לא נותן לך body בברירת מחדל. צריך לייבא את המודול ולהשתמש בו.const bodyParser = require('body-parser'); app.use(bodyParser.json());
בנוסף, השרת מצפה לקבל את השם משתמש וסיסמה ב-query אם כן צריך לעשות את זה ככה:
return this.http.post(`//localhost:3000/users/sessions/add/?username=${user_name}&password=${password}`, null, { headers });
@yossiz אמר בhttpclient ב angular - שליחה בpost לא מקבל נתונים.:
בנוסף, השרת מצפה לקבל את השם משתמש וסיסמה ב-query אם כן צריך לעשות את זה ככה:
return this.http.post(//localhost:3000/users/sessions/add/?username=${user_name}&password=${password}
, null, { headers });דרך הquery ניסיתי ב postman,
אבל בהחלט אני רוצה לקבל ב body אבל לעת עתה, זה גם ריק.@yossiz אמר בhttpclient ב angular - שליחה בpost לא מקבל נתונים.:
שהשגיאה קורה אחרי קבלת התשובה (הריקה, מן הסתם).
אכן,
כי אני מקבל סטטוס 200 בשרת - כפי שצולם, רק שהנתונים ריקים -לכן סביר להניח שמה שכתב@yossiz אמר בhttpclient ב angular - שליחה בpost לא מקבל נתונים.:
express לא נותן לך body בברירת מחדל. צריך לייבא את המודול ולהשתמש בו.
יוביל לפתרון.
-
@yossiz תודה רבה זה היה הפתרון.
@yossiz אמר בhttpclient ב angular - שליחה בpost לא מקבל נתונים.:
אתה שלחת את הנתונים ב-body. בשרת ה-body הוא undefined, אולי אתה לא משתמש ב-body-parser?
express לא נותן לך body בברירת מחדל. צריך לייבא את המודול ולהשתמש בו.
const bodyParser = require('body-parser'); app.use(bodyParser.json());