如何使用 Angular2 POST FromData
How to POST FromData using Angular2
我尝试使用 Angular2 通过 FormData 发送 post 请求。但是我的网络服务器什么也做不了,并给我发回错误代码 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'));
我做错了什么?也许你知道 post FormData
更好的方法
你应该使用 URLSearchParams
class 来做到这一点:
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
class。
别忘了导入 Headers
class:
import {Http,Headers,URLSearchParams} from 'angular/http';
我尝试使用 Angular2 通过 FormData 发送 post 请求。但是我的网络服务器什么也做不了,并给我发回错误代码 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'));
我做错了什么?也许你知道 post FormData
更好的方法你应该使用 URLSearchParams
class 来做到这一点:
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
class。
别忘了导入 Headers
class:
import {Http,Headers,URLSearchParams} from 'angular/http';