frontendとしてangle2を使用してアプリケーションを開発していますが、クライアント側からサーバー側にログインしたいのですが、クレデンシャルを渡そうとするとブラウザコンソールにこれらのエラーがあります。それはと不平を言う、実行時にAngular2:data.jsonは関数ではありません
:
data.json is not a function
これは私のサービスコードである:ここで
import { Injectable } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class LoginService {
isAuthenticated: boolean = true;
constructor(private http: Http) {
}
login(username: string, password: string) {
const headers = new Headers();
const creds = 'username=' + username + '&password=' + password;
headers.append('Authorization', 'Basic ' + btoa(username + ':' + password));
headers.append('Content-Type', 'application/x-www-form-urlencoded');
return new Promise((resolve) => {
this.http.post('http://localhost:8080/StudentManager/login', creds, { headers: headers })
.map(this.extractData)
.subscribe(
(data) => {
if(data.json().success) {
window.localStorage.setItem('auth_key', data.json().token);
console.log(username);
this.isAuthenticated = true;
}
resolve(this.isAuthenticated);
});
}
);
}
}
は、エラーのスナップショットです:
を試すことができます正しい資格情報を入れても、 'if(data.success)'の内部には入りません。 – SuperGirl
'data.success'の値を確認してください –