被这个错误困扰了一个星期。无法使用 Angular HttClient 向 Heroku 服务器发送简单的 post 请求。在主应用程序模块的提供程序部分定义了所有服务。错误处理服务在发送发布请求后不会记录任何错误(该服务工作正常,我已经在另一个项目中进行了测试)。
组件在不同的模块中定义,但服务在根 app.module.ts 中定义和提供
这些组件实时的模块被导入到主应用程序模块中。
但是无论如何post请求都会被取消!.
API 参数
email: string
password: string
验证模型
用于定义 API 数据参数的模型
export interface AuthModel {
email: string;
password: string
}
AuthService.ts
这是我用来注入到我的 component.ts 文件中进行订阅的服务。该服务还使用另一个服务来处理错误情况 HandleError
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
})
};
@Injectable({
providedIn: 'root'
})
export class AuthService {
signUpUrl = 'myurl';
private handleError: HandleError;
constructor(private http: HttpClient, private httpErrorService: HttpErrorService) {
this.handleError = this.httpErrorService.createHandleError('AuthService'); //Problem lies here
}
signUp(authModel: AuthModel) : Observable<AuthModel>
{
return this.http.post<AuthModel>(this.signUpUrl,authModel,httpOptions).pipe( catchError(this.handleError('signup',authModel)) );
}
}
组件.ts
输入数据后单击按钮时调用提交函数
Submit(): void {
this.authModel!.email = this.emailHolder.value;
this.authModel!.password = this.passwordHolder.value;
this.authService.signUp(this.authModel).subscribe((res)=> {console.log(res)});
}
问题出在我的 handleError 函数上,无论响应如何,它都会被取消。因此,请确保大家编写正确的错误处理函数,否则您将得到意想不到的结果。