如何使用Angular2发布FromData

时间:2016-04-24 20:30:04

标签: angular http-post

我尝试使用Angular2向FormData发送帖子请求。但我的网络服务器什么都没有,并发回错误代码500。 我用PostMan util(GoogleChrome插件)检查了请求。我发现了 只有当我什么都不发送时,我才能达到500。

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 个答案:

答案 0 :(得分: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})

目前,Angular2的HTTP支持不支持FormData类。

请勿忘记导入Headers课程:

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