【问题标题】:How to POST FromData using Angular2如何使用 Angular2 发布 FromData
【发布时间】:2016-04-24 20:30:04
【问题描述】:

我尝试使用 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'));

我做错了什么?也许您知道发布 FormData 的更好方法

【问题讨论】:

    标签: angular http-post


    【解决方案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';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 2018-10-07
      • 2017-04-19
      • 2016-07-27
      • 1970-01-01
      • 2018-02-23
      • 2021-05-03
      相关资源
      最近更新 更多