Использование: Angular 7, .net core, web api
Я недавно изменил свое приложение, чтобы использовать проверку подлинности Windows, и теперь мои когда-то работающие запросы терпят неудачу для любого сообщения и помещают (получают работу). Я получаю
Access to XMLHttpRequest at 'https://localhost:44372/api/tasks' from
origin 'http://localhost:4200' has been blocked by CORS policy: Response
to preflight request doesn't pass access control check: No 'Access-
Control-Allow-Origin' header is present on the requested resource.
Мне пришлось добавить угловой перехватчик, чтобы запросы get работали с включенной аутентификацией Windows.
@Injectable()
export class CredentialsInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler):
Observable<HttpEvent<any>> {
request = request.clone({
withCredentials: true
});
return next.handle(request);
}
}
Мой startup.cs добавляет CORS следующим образом (для работы запросов get я должен установить isOriginAllowed)
services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{
builder.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
}));
...//Configure
app.UseCors("AllowAll");
app.UseMvc(routes =>
{
...
Я также пытался указать происхождение или методы
.WithOrigins ("https://localhost:4200"," http://localhost:4200")
или же
.AllowAnyOrigin ()
А также добавление заголовка вручную во время перехвата
intercept(request: HttpRequest<any>, next: HttpHandler):
Observable<HttpEvent<any>> {
request = request.clone({
withCredentials: true
});
request.headers.append('Access-Control-Allow-Origin', 'http://localhost:4200');
return next.handle(request);
Чего мне не хватает? Я гуглил часами. Я понимаю, что CORS блокируется, если не указано разрешенное происхождение. Другие StackOverflow говорят, что это не может быть на стороне клиента, но я чувствую, что клиентский запрос не отправляет заголовок «Access-Control-Allow-Origin». Как я могу проверить, чтобы убедиться, что заголовок установлен? Почему бы получить работу, а не положить запросы?