我正在嘗試爲我的角度應用創建登錄功能。我正在使用角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