httpclient ב angular - שליחה בpost לא מקבל נתונים.
-
בס"ד
יש לי פונקציה ששולחת נתונים לשרת: 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 });
-
@dovid
(זה קצת בזבוז לעסוק בניחושים... אבל) בחלק של הקוד של צד השרת שחשוף לנו אין סיבה לשגיאה. מהסטאק בצילום של הקונסול נראה שהשגיאה לא קורה בפונקציית השליחה. אני מנחש (מבלי להכיר את ה-SessionsService של אנגולר) שהשגיאה קורה אחרי קבלת התשובה (הריקה, מן הסתם). -
@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());