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