Size: a a a

Angular - русскоговорящее сообщество

2020 February 18

S

Sonic🌕 in Angular - русскоговорящее сообщество
Вертихвост キバ
providedIn: ‘root’

Тогда сервис тришейкнится и загрузится тогда, когда потребуется
да, работает как надо. спасибо всем!
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
Andrey Systerov
Добрый день. Подскажите почему могут не вставляться заголовки в запрос? Вот кусок интерсептора
  intercept(
   req: HttpRequest<any>,
   next: HttpHandler): Observable<HttpEvent<any>> {
   // console.log(this.auth.isAuthenticated());
   if (this.auth.isAuthenticated()) {
     // console.log(req);
     // @ts-ignore
     req = req.clone({
       setHeaders: {
         'Content-type': 'application/json, text/plain, */*',
         'Authorization': sessionStorage.getItem('token'),
         // Cookie: this.cookieService.get('user')
       }
     });
   }
   return next.handle(req)
вроде если посмотреть то в req в блоке headers есть заголовки но тот запрос который отображается в браузере не содержит моих заголовках
Подскажите пожалуйста ... не могу понять в чем проблема =(
источник

MY

Mikalai Yaskovich in Angular - русскоговорящее сообщество
Andrey Systerov
Подскажите пожалуйста ... не могу понять в чем проблема =(
setHeaders: { -> headers: { ?
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
Mikalai Yaskovich
setHeaders: { -> headers: { ?
          headers: {
           'Content-type': 'application/json, text/plain, */*',
           'Authorization': sessionStorage.getItem('token')
         }
так ?
источник

MY

Mikalai Yaskovich in Angular - русскоговорящее сообщество
так работает?
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
ERROR in src/app/shared/auth.intercepter.ts(28,13): error TS2322: Type '{ 'Content-type': string; 'Authorization': string; }' is not assignable to type 'string | string[]'.
     Object literal may only specify known properties, and ''Content-type'' does not exist in type 'string[]'.
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Andrey Systerov
Подскажите пожалуйста ... не могу понять в чем проблема =(
const headers = req.headers.append('user-timezone', timeZoneOffset);
req = req.clone({ headers });
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
Andrey Petrov
const headers = req.headers.append('user-timezone', timeZoneOffset);
req = req.clone({ headers });
не взлетело =(
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Andrey Systerov
не взлетело =(
Как не взлетело?
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
Не добавился заголовок
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Andrey Systerov
Не добавился заголовок
return next.handle(req);
делаешь?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Andrey Systerov
Не добавился заголовок
request = request.clone({
     headers: new HttpHeaders({
       'Author': 'me'
     })
   });

return next.handle(request)


у меня вот так сработало
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
intercept(
   req: HttpRequest<any>,
   next: HttpHandler): Observable<HttpEvent<any>> {
   // console.log(this.auth.isAuthenticated());
   if (this.auth.isAuthenticated()) {

     const headers = req.headers.append( 'Authorization', sessionStorage.getItem('token'));
     req = req.clone({ headers });

     // req = req.clone({
     //   setHeaders: {
     //     headers: {
     //       'Content-type': 'application/json, text/plain, */*',
     //       'Authorization': sessionStorage.getItem('token')
     //     }
     //     // Cookie: this.cookieService.get('user')
     //   }
     // });
   }
   return next.handle(req)
     .pipe(
       catchError((error: HttpErrorResponse) => {
           console.log('[Interceptor error]: ', error);
           console.log('[Interceptor error]: ', req);
           if (error.status === 401) {
             this.auth.logout();
             this.router.navigate(['/login'], {
               queryParams: {
                 authFaild: true
               }
             });
           }
           return throwError(error);
         }
       )
     );
 }
Да делаю вот весь код
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Andrey Systerov
intercept(
   req: HttpRequest<any>,
   next: HttpHandler): Observable<HttpEvent<any>> {
   // console.log(this.auth.isAuthenticated());
   if (this.auth.isAuthenticated()) {

     const headers = req.headers.append( 'Authorization', sessionStorage.getItem('token'));
     req = req.clone({ headers });

     // req = req.clone({
     //   setHeaders: {
     //     headers: {
     //       'Content-type': 'application/json, text/plain, */*',
     //       'Authorization': sessionStorage.getItem('token')
     //     }
     //     // Cookie: this.cookieService.get('user')
     //   }
     // });
   }
   return next.handle(req)
     .pipe(
       catchError((error: HttpErrorResponse) => {
           console.log('[Interceptor error]: ', error);
           console.log('[Interceptor error]: ', req);
           if (error.status === 401) {
             this.auth.logout();
             this.router.navigate(['/login'], {
               queryParams: {
                 authFaild: true
               }
             });
           }
           return throwError(error);
         }
       )
     );
 }
Да делаю вот весь код
Смотри, кто у тебя еще в цепочке интерцепторов, могут перетирать хэдеры
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Oleg Safonov
request = request.clone({
     headers: new HttpHeaders({
       'Author': 'me'
     })
   });

return next.handle(request)


у меня вот так сработало
Как вот тут, например
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Andrey Systerov
intercept(
   req: HttpRequest<any>,
   next: HttpHandler): Observable<HttpEvent<any>> {
   // console.log(this.auth.isAuthenticated());
   if (this.auth.isAuthenticated()) {

     const headers = req.headers.append( 'Authorization', sessionStorage.getItem('token'));
     req = req.clone({ headers });

     // req = req.clone({
     //   setHeaders: {
     //     headers: {
     //       'Content-type': 'application/json, text/plain, */*',
     //       'Authorization': sessionStorage.getItem('token')
     //     }
     //     // Cookie: this.cookieService.get('user')
     //   }
     // });
   }
   return next.handle(req)
     .pipe(
       catchError((error: HttpErrorResponse) => {
           console.log('[Interceptor error]: ', error);
           console.log('[Interceptor error]: ', req);
           if (error.status === 401) {
             this.auth.logout();
             this.router.navigate(['/login'], {
               queryParams: {
                 authFaild: true
               }
             });
           }
           return throwError(error);
         }
       )
     );
 }
Да делаю вот весь код
if (this.auth.isAuthenticated())
точно true возвращает? 😊
источник

DS

Dmitry Shapovalov in Angular - русскоговорящее сообщество
Всем привет. Подскажите, почему ВебШторм не подтягивает интерфейс в шаблон при построении таблицы материла. Может я чет не так делаю ?
dataSource: MatTableDataSource<User>
<table mat-table matSort [dataSource]="dataSource">
*matCellDef="let user" <-- у user нет интерфейса  

Или это какая-то моя локальная проблема ?
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
Andrey Petrov
if (this.auth.isAuthenticated())
точно true возвращает? 😊
я и так и так пробовал =))) вот скрин залогиненного пользоватея
источник

AS

Andrey Systerov in Angular - русскоговорящее сообщество
почему мои заголовки попадают в Access-Control-Request-Headers? причем только названия
источник