【问题标题】:Using JSON in AngularJS REST在 AngularJS REST 中使用 JSON
【发布时间】:2015-06-10 20:39:27
【问题描述】:

这是个愚蠢的问题。我像这样从 Angular 调用休息服务:

UserService.GetByUsername(username)
    .then(function (user) {
        if (user !== null && user.password === password) {

                        response = { success: true };
...

我可以从调试器中看到,确实有一个来自 DB 的具有适当值的用户对象:

{
firstName: "Suba",
lastName: "Superi",
lastUpdated: "2015-06-02T18:14:56+03:00",
nickName: "",
password: "super",
userId: 2,
username: "super"
}

问题

为什么这个 (user.password) 未定义:if (user !== null && user.password === password)。我的符号中有什么东西吗,或者我如何检查数据库中的密码是否与用户在表单中输入的密码相同?我如何从休息返回的 JSON 中获取该密码,可能是 json 解析?我刚刚启动 AngularJS 并实现身份验证和登录,所以即使密码是纯文本等也不要打扰 :) 这让我很烦。用户是一个对象,我认为这是原因,因为我假设它是用户的类型?

【问题讨论】:

  • 你确定user.passwordundefined 吗?如果有的话password 将是undefined。我看不到 password 的定义位置。
  • 也发布您的服务代码。
  • 密码来自表单,用户来自数据库。我用 chrome 调试器检查了它,用户不是 null 并且有正确的对象,但是 user.password 仍然是未定义的整体,密码也得到了正确的值。
  • 你在某处犯了一个(可能很小的)错误。您没有提供足够的信息来提供帮助。
  • 也感谢@Andy Gaskell 帮助我。这是一个非常小而愚蠢的错误,基本上只是因为将响应命名为用户,这让我感到困惑。 user.data.password 或 response.data.password

标签: javascript json angularjs rest


【解决方案1】:

你确定你得到的是“用户”对象而不是 then() 中的响应对象吗?

UserService.GetByUsername(username)
    .then(function (response) {
        if (response && response.data && response.data.password === password) {

【讨论】:

  • 谢谢,我得到的是响应对象,而不是用户。就是这样。我刚刚改变了这个: UserService.GetByUsername(username) .then(function (user) { if (user !== null && user.data.password === password) {
猜你喜欢
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
相关资源
最近更新 更多