如何使用带有表单数据主体而不是 json 主体的 http 'POST'? (Angular2/打字稿)

Posted

技术标签:

【中文标题】如何使用带有表单数据主体而不是 json 主体的 http \'POST\'? (Angular2/打字稿)【英文标题】:How to use http 'POST' with form-data body instead of json body? (Angular2/Typescript)如何使用带有表单数据主体而不是 json 主体的 http 'POST'? (Angular2/打字稿) 【发布时间】:2017-01-19 16:34:19 【问题描述】:

我有一些想要执行的请求,直到现在我使用带有 json 的 http.post,如下所示:

this.http.post("https://somepath.com/users/login", JSON.stringify("email": "someone@gmail.com","password":"123","user_token":"sss"), RequestOptionsArgs);

但这不起作用,因为对本网站的此请求需要是表单数据主体...我怎样才能接受同样的调用并将其更改为表单数据?

谢谢!

【问题讨论】:

尝试删除JSON.stringify( 【参考方案1】:

正如我在Angular 2 tests 中看到的,您应该使用 FormData 对象。即:

let body = new FormData();
body.append('email', 'someone@gmail.com');
body.append('password', '123');
this.http.post("https://somepath.com/users/login", body);

【讨论】:

这里我可以得到 200 Ok 的状态。但是使用这个我如何重定向到另一个页面?

以上是关于如何使用带有表单数据主体而不是 json 主体的 http 'POST'? (Angular2/打字稿)的主要内容,如果未能解决你的问题,请参考以下文章

编码请求主体

使用 MVC 从数据主体调用 post API

当我们向服务器post数据时,表单 or JSON

Azure自动化帐户-如何使用自定义服务主体登录而不是作为帐户运行?

如何在引导模式框中重置表单主体?

如何将JSON数据添加到HTML AWS lambda响应主体?