在url栏中显示post请求参数

时间:2018-02-07 05:33:41

标签: angular typescript http-post angular5

我使用angular 5来开发我的门户网站。一切正常,直到它在开发环境中。但是,作为生产要求,我将一些访问修饰符从private更改为public。现在它在这两种环境中都不起作用。我面临的问题是我现在无法登录。它现在 显示了URL栏中的登录凭据,即使我使用POST (之前工作正常),就像这样 -

http://localhost:4200/?username=abcd@gmail.com&password=12345

我无法登录,它停留在同一页面上。

供参考,这是我的登录方法 -

login(username, password) {
    return this.http.post(this.loginUrl, { user: username, password: password})
    .map((res: any) => {
      return res;
    })
}

然后我将我的更改还原(public改为private),但它不起作用。请帮我找出问题所在。

更新 我做了一些解决方法,发现 问题与HttpInterceptor 有关。如果我从模块中删除拦截器即{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },我的项目正在工作。那么,我怎样才能让它再次发挥作用呢?

1 个答案:

答案 0 :(得分:0)

由于拦截器失败而发生这种情况。它没有获得authorization值。因此,我修改了我的拦截器以仅在用户登录时修改请求,如下所示 -

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    this.authService = this.inj.get(UserService);
    if(this.authService.loggedIn)    // if logged in
        req = req.clone({
            setHeaders: {
                'Content-Type': 'application/json',
                authorization: this.authService.getCurrentUsername()
            }
        });

    return next.handle(req);
}

现在正在运作!