【问题标题】:Ionic 3 Post RequestIonic 3 发布请求
【发布时间】:2018-07-03 23:15:39
【问题描述】:

我希望将我的 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}”,因为它不是“离子输入”的已知属性。这是在我将所有必要的导入放入我的 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:现在从我的后端收到一个错误:“错误:发送后无法设置标头。”

【问题讨论】:

    标签: ionic-framework ionic2 ionic3


    【解决方案1】:

    好的,我在@ChesterLaborde 的帮助下发现了问题

    我不得不取出 .map(res => res.json())

    正如@ChesterLaborde 提到的要取出 Stringify - 我相信这是因为我已经将它转换为 JSON,而 .map(res => res.json()) 正试图再次这样做。我相信这是问题的根源,至少对我有用。

    【讨论】:

    • 在这种情况下,取出 .map(res => res.json()) 可能会起作用,但在将来响应确实重要的情况下,您需要将其映射到 JSON。另外,如果您发现对我的回答有任何帮助,则应将其标记为已接受
    • 您能详细说明一下吗?另外,我刚刚将您的答案标记为完整。感谢您的帮助! @ChesterLaborde
    • 假设您对服务器进行了 get 调用,并且希望显示响应。您需要将服务器给您的响应映​​射到 JSON 对象以使用它
    【解决方案2】:

    问题在于它不是[{ngModel}],而是[(ngModel)]。这应该可以解决问题。

    编辑:

    去掉this.email和body上的this.password中的"",应该是这样的:

    let body = {
      email: this.email,
      password: this.password
    };
    

    【讨论】:

    • 有一个小错字!已修复,但 DB 和 post 连接仍然出现错误
    • @cdh429 编辑了答案
    • 进行更改时出现此错误...'ERROR SyntaxError: Unexpected token S in JSON at position 0' @ChesterLaborde
    • 虽然查看了数据库,但确实注册了。很奇怪@ChesterLaborde
    • @cdh429 我会删除 JSON.stringify
    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2018-11-24
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多