簡體   English   中英

從角度到彈簧的表格數據發布請求

[英]post request with form-data from angular to spring

我正在嘗試使用angular和它的http庫向我的spring rest api發送一個帖子請求。

目前在post-man(成功)我以這種方式發送數據:

  1. 格式是表單數據
  2. 關鍵是reqData(必填)
  3. 價值是json(強制性)

后男子,請求

如何通過角度以相同的方式發送數據?

目前,這是我的數據的樣子:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM