отправить запрос с данными формы от угла до весны - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь отправить запрос на отправку в мой весенний отдых API, используя Angular и его http-библиотеку.

в настоящее время в пост-человек (успешно) я отправляю данные следующим образом:

  1. Формат данных формы
  2. Ключ reqData (обязательный)
  3. Значение - json (обязательно)

post-man,request

как отправить данные таким же способом через угловой?

В настоящее время мои данные выглядят так:

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, и карту:

const formData: FormData = new FormData();
    formData.append('reqData', JSON.stringify(reqData));

const map = new Map();
    map.set('reqData', reqData);

Ответы [ 3 ]

0 голосов
/ 25 апреля 2019

Вы можете создать метод для публикации, как показано ниже:

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); 
}
0 голосов
/ 26 апреля 2019

Это то, что я сделал, чтобы отправить запрос в мой бэкэнд.

я создал необходимый JSON, затем я создал строку параметра запроса

const reqData = 'reqData=' + jsonDataInString;

, который отправил успешный запрос.

0 голосов
/ 25 апреля 2019

Для отправки данных на сервер с использованием формданных можно сделать это следующим образом

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

Надеюсь, это решит вашу проблему. Пожалуйста, дайте мне знать, если это решит вашу проблему

...