Angular2:data.json不是函数

时间:2017-03-17 15:59:51

标签: angular

我正在使用angular2开发一个应用程序作为前端我想从客户端登录到服务器端但是当我尝试传递凭据时,我在浏览器控制台中遇到了这些错误。

在运行时,它抱怨:

  

data.json不是函数

这是我的服务代码:

ModulePass

以下是错误的快照:

  

enter image description here

3 个答案:

答案 0 :(得分:2)

data代替data.json(),因为您已使用extractData将数据映射到json

  .subscribe(
      (data) => {
            if(data.success) {
               window.localStorage.setItem('auth_key', data.token);
               console.log(username);
               this.isAuthenticated = true;
            }
            resolve(this.isAuthenticated);
        });

答案 1 :(得分:0)

您的问题是数据对象中没有函数json()。改为

.subscribe(
          (data) => {         
                window.localStorage.setItem('auth_key', data.json().token);
                console.log(username);
                this.isAuthenticated = true;                     
                resolve(this.isAuthenticated);
            });

此外,您不需要在数据方法中执行该检查,因为如果您在此处,则请求成功,否则会出错。

答案 2 :(得分:0)

你可以试试这个

this.http.post('http://localhost:8080/StudentManager/login', creds, { headers: headers })
      .map( res => res.json() )
      .subscribe(
          (data) => {
                     if(data.success) {
                          ....
                    } 
            });

    }