0

我正在尝试发出这样的 HTTP 请求:

login(username, password) {
  let body = {
    userid: username,
    password: password
  }

  let options = {
    headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded'),
    withCredentials: true
  };

  let request = this.http.post(this.baseUrl, body, options);
  request.subscribe();
}

这将返回 500 内部服务器错误。但是,如果我将 body 变量修改为如下所示:

login(username, password) {
  let body = 'userid=' + username + '&password=' + password;

  let options = {
    headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded'),
    withCredentials: true
  };

  let request = this.http.post(this.baseUrl, body, options);
  request.subscribe();
}

它工作正常。我已经看到文档中使用的第一个版本,但由于某种原因,它对我来说不起作用。我在想:

A)这些陈述应该是等价的吗?有语法问题吗?-或者-

B) 后端有问题吗?在我们的服务器日志中,我们得到类似“参数@userIdentifier 是预期但未提供”的信息。

我必须选择可行的,但如果可能的话,我想使用第一个语句的语法。谢谢!

4

1 回答 1

0

如果没有关于后端或您收到的特定 500 错误消息的更多信息,我唯一的建议是验证您的后端架构是否与前端模型匹配。从提供的有限错误消息来看,看起来您可能在后端错误userid地标记了标签userIdentifier

于 2018-10-12T14:16:24.403 回答