2016-04-24 19 views
1

Ich habe versucht, Post-Anfrage mit FormData mit Angular2 zu senden. Aber mein Webserver erreicht nichts und sendet mir den Fehlercode 500 zurück. Ich habe die Anfrage mit PostMan util (GoogleChrome Addons) überprüft. Und ich fand, dass ich 500 nur erreiche, wenn ich nichts sende.So senden Sie POST FromData mit 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')); 

Was mache ich falsch? Vielleicht wissen Sie besser Weise Formdata

Antwort

1

Sie schreiben shoud die URLSearchParams-Klasse verwenden, das zu tun:

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}) 

Im Moment der FormData Klasse ist die Box nicht durch die HTTP-Unterstützung von Angular2 unterstützt werden.

Vergessen Sie nicht, die Headers Klasse zu importieren:

import {Http,Headers,URLSearchParams} from 'angular/http'; 
Verwandte Themen