2016-04-24 1 views
1

Я попытался отправить запрос на отправку с помощью FormData, используя Angular2. Но мой веб-сервер ничего не достигает и отправляет мне код ошибки 500. Я проверил запрос с помощью PostMan util (админы GoogleChrome). И я обнаружил, что i достигает 500, только когда я ничего не посылаю.Как с помощью POST FromData с помощью Angular2

let Form = new FormData(); 
    Form.append("username", this.username); 
    Form.append("password", this.password); 

let headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded'); 

    this.http.post("/ajax/rest_login", 
     Form, 
     {headers: headers}) 
    .map((res: Response) => res.json()) 
    .subscribe(
      res => console.log(res.text()), 
      err => console.log(err), 
      () => console.log('done')); 

Что я делаю неправильно? Может быть, вы знаете, лучший способ, чтобы отправить FormData

ответ

1

Вы Шоуду использовать URLSearchParams класс, чтобы сделать это:

let form = new URLSearchParams(); 
form.set("username", this.username); 
form.set("password", this.password); 

let headers = new Headers(); 
headers.append('Content-Type', 'application/x-www-form-urlencoded'); 

this.http.post("/ajax/rest_login", 
    form.toString(), 
    {headers: headers}) 

На данный момент FormData класса не поддерживается из коробки со стороны HTTP поддержкой Angular2.

Не забудьте импортировать Headers класс:

import {Http,Headers,URLSearchParams} from 'angular/http'; 
Смежные вопросы