angular - Angular 5,根本没有调用http POST
问题描述
我正在尝试使用 Angular 5 调用 Http Post 并将其发送到我的后端(使用 springboot 和 MySQL)。用 Postman 测试了后端,这似乎可行。当我试图将 Angular 放入游戏中时,它似乎不起作用。没有编译或控制台错误,spring 也没有收到任何内容。对应的 Angular Service 的代码如下:
post 方法位于底部的 registerProvider 方法中:我想指出那里使用的 console.logs 也打印正确的数据,所以这也不是 ..component.html 的问题
import { Injectable } from '@angular/core';
import { OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
import { IProvider } from './provider';
@Injectable()
export class ProviderService {
constructor(private router: Router,
private httpClient: HttpClient ){}
private provider: IProvider= {'email':undefined,'password':undefined};
getProvider(): IProvider {
return this.provider;
}
getProviderEmail(): string{
return this.provider.email;
}
getProviderPassword(): string{
return this.provider.password;
}
setProviderEmail(email: string): void {
this.provider.email= email;
}
setProviderPassword(password: string): void {
this.provider.password= password;
}
checkProvider(email: string, password: string): boolean{
if(email=='provider@a.a' && password=='a'){ //validation of provider
this.provider.email= email;
this.provider.password= password;
return true;
}
return false;
}
logOut(): void{
this.setProviderEmail(undefined);
this.setProviderPassword(undefined);
this.router.navigate(['/']);
}
isProviderLogged():boolean{
return !!(this.getProviderEmail() && this.getProviderPassword());
}
registerProvider(email: string, password: string): Observable<any> {
console.log(email,password);
this.setProviderEmail(email);
this.setProviderPassword(password);
let backendUrl: string = 'http://localhost:8080/signUpProvider';
console.log(backendUrl);
console.log(this.provider);
return this.httpClient.post<any>(backendUrl, this.provider,{observe : 'response'});
}
}
解决方案
您需要从调用 registerProvider 函数的位置订阅observable。
在调用注册提供程序函数的组件文件中,添加订阅。
registerProvider(email, password).subscribe((res) => {
})
推荐阅读
- c# - 带有 Convert.ToInt32 的奇怪 FormatException
- android - 为什么 jni 调用在修改可组合记忆值时失败?
- c# - 如何检查引用的 Razor 类库中是否存在视图?
- c - switch下if语句内的计算
- sql - 查询名称附加日期模式的多个表
- vue.js - Nuxt:客户端 API 请求中的错误 Axios 基本 URL
- unity3d - GetKeyDown 总是返回真正的结果堆栈溢出
- c++ - 后缀程序的中缀没有产生正确的输出
- javascript - TypeError:无法在“Node”上执行“appendChild”:参数 1 不是“Node”类型。我做错什么了吗?
- javascript - ffmpeg 错误:无法从 javascript 中的视频制作缩略图