HttpClient Angular 5不发送请求

时间:2018-02-08 17:14:25

标签: ajax angular typescript httpclient angular5

我在Angular 5中遇到HttpClient的问题.HttpClient不会在两个指定的组件上发送任何请求(我在控制台中看不到任何xhr日志)。在其他组件上一切都很好。

从Component A 调用ApiService POST方法(自定义服务,就像HttpClient的包装一样工作),但是当我从Component B 调用此方法时 HttpClient似乎被冻结了。

我的应用中有很多组件使用ApiService。一切都很好。我不知道出了什么问题。

---回复

ApiService.ts

@Injectable()
export class ApiService
{
    private errorListeners : Map<string, Array<(details ?: any) => any>> =
        new Map<string, Array<(details ?: any) => any>>();

    public constructor(private http: HttpClient)
    {

    }

    public post<T>(path : string, data : any, urlParams : any = null) : Observable<any>
    {
        return this.http.post<T>(`${environment.api.path}${path}`, data, {
            params: urlParams
        }).catch(this.catchErrors()).map(response => {
            if (response['Error']){
                throw response['Error'];
            }

            return response;
        });
    }

}

- 成分

   @Component({
    selector: 'login-register-component',
    templateUrl: './register.component.html',
    styleUrls: [
        './../../assets/main/css/pages/login.css'
    ]
})
export class RegisterComponent implements OnInit, OnDestroy
{

public constructor(private route: ActivatedRoute,
                       private router: Router,
                       private userService : UserService,
                       private apiService: ApiService
    )
    {
        this.apiService.post('/some-endpoint', null, {}).subscribe(res => {
console.log(res);

});

}

即使我直接将Ht​​tpClient注入Component

,HttpClient也不起作用

- 同一模块中的其他组件 示例调用:(可行)

public loginTraditionalMethod(emailAddress : string, plainPassword : string)
    {

        this.apiService.post('/auth/email', {
            email: emailAddress,
            password: plainPassword
        }, {}).subscribe(res => {
           console.log(res);
        })

    }

1 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,订阅了http.get()后没有xhr请求。这是一个要求忘记密码功能的请求,因此我没有连接到该应用程序。

该请求被http令牌拦截器拦截,如果未检测到会话,该令牌将返回一个空的Observable。

永远不知道,这可能会帮助某人...