angular 9 перехватчик в ленивом режиме - PullRequest
0 голосов
/ 12 марта 2020

Я купил шаблон lorax angular , разработанный в angular и обновленной версии 9. Я пытаюсь изменить этот шаблон в соответствии со своими требованиями и добавить HTTP_INTERCEPTOR в мой проект.

В этом шаблоне много модулей, и я тоже создаю для себя. Позвольте мне поделиться некоторым кодом в моем проекте.

APP.MODULE.TS

    import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
    /*
    Also Imported necessary libraries
    */
        const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
          suppressScrollX: true,
          wheelPropagation: false
        };

    @NgModule({
      declarations: [
        AppComponent,
        HeaderComponent,
        PageLoaderComponent,
        SidebarComponent,
        RightSidebarComponent,
        SimpleDialogComponent,
        DialogformComponent,
        BottomSheetOverviewExampleSheet,
      ],
      imports: [
        /*
IMPORTS SOME OTHER COMPONENT
*/
        SatPopoverModule,
        HttpClientModule
      ],
      providers: [
        { provide: 'apiURL', useValue: 'http://localhost:8080' },
        { provide: LocationStrategy, useClass: HashLocationStrategy },
        { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG },
        {
          provide: HTTP_INTERCEPTORS,
          useClass: AuthRequestOption,
          multi: true
        },
        DynamicScriptLoaderService,
        RightSidebarService,
        WINDOW_PROVIDERS
      ],
      entryComponents: [
        SimpleDialogComponent,
        DialogformComponent,
        BottomSheetOverviewExampleSheet
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

И у меня есть модуль "YONETICI" с самими маршрутами.

yonetici.module.ts

import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
/*Also Imported necessary libraries*/

@NgModule({
  declarations: [KullaniciListComponent, InlineEditComponent, KullaniciList2Component],
  imports: [
    CommonModule,
    YoneticiRoutingModule,
    DataTablesModule,
    MatFormFieldModule,
    FormsModule,
    SatPopoverModule,
    MatInputModule,
    TablesRoutingModule,
    NgxDatatableModule,
    MatButtonModule,
    MatTableModule,
    MatSelectModule,
    ReactiveFormsModule,
    MatPaginatorModule,
    MatIconModule,
    MatSnackBarModule,
    MatCheckboxModule,
    HttpClientModule
  ]
})
export class YoneticiModule { }

и мой файл-перехватчик:

auth-request-option.ts

import {MyApiService, TOKEN_NAME} from './yonetici/my-api.service';
import {HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest} from '@angular/common/http';
import {Injectable} from '@angular/core';

import { from as fromPromise, Observable} from 'rxjs';


@Injectable()
export class AuthRequestOption implements HttpInterceptor {
  constructor( private cookieService: MyApiService ) {
console.log('intercepting');
  }
  getCookie(){
    return this.cookieService.getToken();
  }
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    if(this.getCookie() !== null){
      const jsonReq: HttpRequest<any> = req.clone({
        setHeaders:{
          Authorization : 'Bearer 213123' //this is getting from servis
        }
      });
      console.log('intercepted1');
      return next.handle(jsonReq);
    }else{
      console.log('intercepted2');
      return next.handle(req);
    }
  }
}

И, наконец, когда я пытаюсь опубликовать (или получить) метод для localhost: 8080 / yonetici / kullanici_list to java sevis, я получил это сообщение в Chrome Консоли:

*intercepting
*main.js:488 intercepted1
*main.js:488 intercepted1
*vendor.js:312988 [WDS] Live Reloading enabled.
*Access to XMLHttpRequest at 'http://localhost:8080/yonetici/kullanici_list' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
*polyfills.js:3050 GET http://localhost:8080/yonetici/kullanici_list net::ERR_FAILED

Кроме того, когда я отлаживаю код на стороне сервера, я получаю заголовок не "Авторизация". И никакого кода на предъявителя. Я потратил два дня на эту ошибку. очень нужна твоя помощь ...

...