我正在尝试为我的角度应用创建登录功能。我正在使用角4(它似乎没什么像angularjs)无法获取来自Angular 4的HTTP响应
我想解决如何使用HTTP,我只是卡住了,已经有4个小时了。
我得到网页上的这个错误:
login.component.ts (29,3): Type 'Promise<User>' is not assignable to type 'User'. Property 'id' is missing in type 'Promise<User>'.
,这在控制台上: login.component.ts (30,25): Property 'json' does not exist on type 'User'.
为我的生活中,我似乎无法得到实际响应从服务器发送(见下文)
我已经沿着angular.io上的HTTP教程(https://angular.io/tutorial/toh-pt6),我已经尝试了许多变化与.subscribe,.ma p等
有人可以看看下面的代码,帮助我吗?
谢谢
这是访问后端的组件。
export class loginComponent {
SERVICE_URL = "http://localhost:80/play/classes/index.php?fn=userLogin";
model = new Login("", "");
user: User;
constructor(private http: Http) {}
onSubmit(){
console.log("submission complete!");
console.log(this.model.username);
console.log(this.model.pass);
let params: URLSearchParams = new URLSearchParams();
params.set('username', this.model.username);
params.set('password', this.model.pass);
this.user = this.doLogin(params);
console.log(this.user.json);
}
doLogin(params: URLSearchParams): Promise<User>{
return this.http.get(this.SERVICE_URL, new RequestOptions({"search": params}))
.toPromise()
.then(response => response.json().data as User)
.catch(this.handleError);
}
get diagnostic() { return JSON.stringify(this.model); }
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
}
这是响应我从服务器获取,但实际上并不能在应用程序中使用:
{"id":"3","username":"jamiemac262","password":"123456","dob":"1993-03-24","email":"[email protected]","steamID":null,"age":24}
我只是尝试这样做,有一个轻微的语法错误(你有一个额外的托架'后。于是(' –
当我用你的例子中,控制台说'未定义'它试图打印'数据' –
你已经在你的'doLogin()'方法中使用'then'。你是否可以在teamviewer中使用? – Aravind