Json 角度http post第一次不工作,但第二次工作
尝试我的第一个角度练习。第一次从http post接收未定义的值,但第二次得到正确的响应(Edge,Firefox)。谢谢 LoginService(调用Http post方法并返回observable) LoginFormComponent(调用服务类并将JSON转换为typescript对象) 控制台日志Json 角度http post第一次不工作,但第二次工作,json,angular,http,typescript,post,Json,Angular,Http,Typescript,Post,尝试我的第一个角度练习。第一次从http post接收未定义的值,但第二次得到正确的响应(Edge,Firefox)。谢谢 LoginService(调用Http post方法并返回observable) LoginFormComponent(调用服务类并将JSON转换为typescript对象) 控制台日志 LoginService.login - userName admin main.bundle.js:370:9 undefined main.bundle.js:266:9 unde
LoginService.login - userName admin main.bundle.js:370:9
undefined main.bundle.js:266:9
undefined main.bundle.js:267:9
Request completed main.bundle.js:263:181
LoginService.login - userName admin main.bundle.js:370:9
SUCCESS main.bundle.js:266:9
VALID USER main.bundle.js:267:9
Request completed main.bundle.js:263:181
Angular服务器调用是异步的,这意味着代码在执行其余代码之前不会等待服务器响应。比如PHP。因此,您不会看到等待服务器发送数据的空白页。当您想要处理来自服务器调用的响应时,您必须在
订阅中添加所有代码;这意味着如果需要将此信息传递给另一个服务。
您的代码应该如下所示
onSubmit(){
this.loginSvc.login(this.loginRequest).subscribe(
数据=>{
this.loginResponseStr=数据
var loginResponse=新的loginResponse();
loginResponse.fillFromJSON(JSON.stringify(data));
console.log(loginResponse.status);
console.log(loginResponse.statusDesc);
如果(loginResponse.status==“成功”){
这个.router.navigate(['/主页']);
}
},
错误=>警报(错误),
()=>console.log('请求已完成')
);
}
角度服务器调用是异步的,这意味着代码在执行其余代码之前不会等待服务器响应。比如PHP。因此,您不会看到等待服务器发送数据的空白页。当您想要处理来自服务器调用的响应时,您必须在订阅中添加所有代码;这意味着如果需要将此信息传递给另一个服务。
您的代码应该如下所示
onSubmit(){
this.loginSvc.login(this.loginRequest).subscribe(
数据=>{
this.loginResponseStr=数据
var loginResponse=新的loginResponse();
loginResponse.fillFromJSON(JSON.stringify(data));
console.log(loginResponse.status);
console.log(loginResponse.statusDesc);
如果(loginResponse.status==“成功”){
这个.router.navigate(['/主页']);
}
},
错误=>警报(错误),
()=>console.log('请求已完成')
);
}
Http调用是异步的。您需要将检查响应的代码移动到onNext处理程序中。Http调用是异步的。您需要将检查响应的代码移动到onNext处理程序中。
onSubmit() {
this.loginSvc.login(this.loginRequest).subscribe(
data => this.loginResponseStr = data,
error => alert(error),
() => console.log('Request completed')
);
var loginResponse = new LoginResponse();
loginResponse.fillFromJSON(JSON.stringify(this.loginResponseStr));
console.log(loginResponse.status);
console.log(loginResponse.statusDesc);
if(loginResponse.status == "SUCCESS"){
this.router.navigate(['/home-page']);
}
LoginService.login - userName admin main.bundle.js:370:9
undefined main.bundle.js:266:9
undefined main.bundle.js:267:9
Request completed main.bundle.js:263:181
LoginService.login - userName admin main.bundle.js:370:9
SUCCESS main.bundle.js:266:9
VALID USER main.bundle.js:267:9
Request completed main.bundle.js:263:181