![](/img/trans.png)
[英]POST with request body params of type 'form-data' not working + angular 2
[英]post request with form-data from angular to spring
我正在嘗試使用angular和它的http庫向我的spring rest api發送一個帖子請求。
目前在post-man(成功)我以這種方式發送數據:
如何通過角度以相同的方式發送數據?
目前,這是我的數據的樣子:
onSignIn(form: NgForm) {
const email = form.value.email;
const password = form.value.password;
const reqData = {
'app_uname': email,
'app_pass': password
};
}
添加更多關於我的后端代碼:
我的休息api看起來像這樣:
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> handle(@RequestParam(value = "reqData") String reqData,HttpServletRequest request)
所以我應該發送一個鍵和值(我不知道打字稿中的哪個數據結構,但在java中它是MultiValueMap),其中鍵是reqData,值應該是字符串或json對象中的json。
如何使我的reqData json在角度為MultiValueMap格式?
我也嘗試過formData和Map:
const formData: FormData = new FormData();
formData.append('reqData', JSON.stringify(reqData));
const map = new Map();
map.set('reqData', reqData);
使用formdata使用發送數據到服務器可以這樣做
const email = form.value.email;
const password = form.value.password;
const formData: FormData = new FormData();
formData.append("email ", email);
formData.append("password ", password);
// then http post to server
編輯
如果你想以json的形式提交數據,你需要這樣做
const email = form.value.email;
const password = form.value.password;
const reqData = {
'app_uname': email,
'app_pass': password
};
const formData: FormData = new FormData();
formData.append("reqData", JSON.stringify(reqData));
// then http post to server and in the server you need to parse the json string
希望它能解決你的問題。 如果這可以解決您的問題,請告訴我
您可以創建一個發布方法,如下所示:
var model = {email: youremail, password: yourpassword};
post(url: string, model: any): Observable <any> {
let formData: FormData = new FormData();
formData.append('app_uname', model.email);
formData.append('app_pass', model.password);
return this._http.post(url, formData)
.map((response: Response) => {
return response;
}).catch(this.handleError);
}
這就是我向后端發送請求所做的工作。
我創建了所需的json,然后我創建了一個請求參數字符串
const reqData = 'reqData=' + jsonDataInString;
發送了成功請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.