Ionic 3 Post Request
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ionic 3 Post Request相关的知识,希望对你有一定的参考价值。
我想将我的register.html和我的register.ts文件链接在一起,以便向我的后端发送帖子请求。我正在创建一个寄存器屏幕,它将信息发送到我的数据库(mongoDB / Node)
我开始使用[{ngModel}],如下例所示:
<form id="signup-form3">
<ion-list id="signup-list2">
<ion-item id="signup-input6">
<ion-label>
email
</ion-label>
<ion-input type="email" name="email" [(ngModel)]="email" placeholder="Email"></ion-input>
</ion-item>
但是仍然收到错误:'无法绑定到'{ngModel}',因为它不是'ion-input'的已知属性。这是在我将所有必要的导入到我的app.module.ts之后。
在我的TS文件中,我正在使用...发送帖子请求
register() {
let headers = new Headers();
headers.append("Content-Type", "application/json");
let body = {
email: "this.email",
password: "this.password"
};
this.http.post('http://localhost:3005/v1/account/register', JSON.stringify(body), {headers: headers})
.map(res => res.json())
.subscribe(data => {
console.log(data);
});
}
不确定是否有一种更简单的方法可以解决它,或者我是否以错误的方式使用ngModel。
编辑:修正[(ngModel)]拼写错误。现在给我错误......
“具有给定用户名的用户已经注册” - 我认为它正在向数据库发送“this.email” - 虽然我在控制台登出时会显示该电子邮件。这是JSON.stringify的问题吗?
编辑2:现在从我的后端收到错误:'错误:发送后无法设置标题。
问题是它不是[{ngModel}]
,它是[(ngModel)]
。那应该解决这个问题。
编辑:
从""
和this.email
身上移除this.password
,应该是这样的:
let body = {
email: this.email,
password: this.password
};
好的,我在@ChesterLaborde的帮助下发现了这个问题
我不得不拿出.map(res => res.json())
正如@ChesterLaborde提到的那样取出Stringify - 我相信这是因为我已经把它变成了JSON,而.map(res => res.json())试图再次这样做。我相信这是问题的根源,至少对我有用。
以上是关于Ionic 3 Post Request的主要内容,如果未能解决你的问题,请参考以下文章
ionic使用常见问题——PHP无法获取$http的post数据
HTTP POST 请求 Ionic 3 给出 403 禁止