【问题标题】:CRUD POST issuesCRUD POST 问题
【发布时间】:2016-07-14 05:13:40
【问题描述】:

我正在构建 MEAN 项目的前端。我的服务器端工作正常,所以如果我向本地主机发送一个带有名字、姓氏、电子邮件和密码的发布请求,我会得到一个成功的响应。

这是我在 Angular 中的函数:

  signUp(user) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    return this._http
      .post('/signup', JSON.stringify({ user }), { headers })
      .map(res => res.json())
      .map((res) => {
        console.log(JSON.stringify({ user }));
        return res.success;
      });
  }

不幸的是,这只是返回一个success: false 参数。一个示例测试将控制台注销为:

{"user":{"firstName":"fghnjmkcvbnm","lastName":"dfghjk","email":"dfghj@ghnjm.com","password":"fghjk12345456"}}

任何想法为什么这不起作用?

【问题讨论】:

  • " 这不起作用" 是一个完全不充分的问题陈述。几乎没有告诉我们发生了什么或没有发生什么。使用链接到 http 请求的 map 也没有意义
  • @charlietfl 好吧,API 只是返回一个 success: false 响应,不知道为什么会失败?
  • 首先检查浏览器开发工具网络中的实际请求,以查看发送的内容是否是预期的内容以及任何其他线索。需要隔离问题出在哪里......可能是服务器端或客户端
  • 您是否尝试提交 application/x-www-form-urlencoded 请求,这就是您在提供的邮递员屏幕截图中使用的内容?也许您的服务器未设置为解析/接受application/json 请求。

标签: node.js angular mongodb rest


【解决方案1】:

在您的屏幕截图中,您使用 application/x-www-form-urlencoded 作为内容类型。

我会这样重构你的代码:

signUp(user) {
  let headers = new Headers();
  headers.append('Content-Type', 'application/x-www-form-urlencoded');

  let user = new URLSearchParams();
  user.set('email', 'some email');
  user.set('password', 'some password');
  user.set('firstName', 'first name');
  user.set('lastName', 'last name');

  return this._http
    .post('/signup', user.toString(), { headers })
    .map(res => res.json())
    .map((res) => {
      console.log(JSON.stringify({ user }));
      return res.success;
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2018-01-31
    • 2019-10-28
    相关资源
    最近更新 更多