Итак, сначала я добавил метатег для моей страницы index.html
, и она не сработала. После этого я создал interceptor
, чтобы добавить заголовки к моей get
функции. Подробнее о перехватчиках вы можете прочитать на https://angular.io/api/common/http/HttpInterceptor
Все еще не работает. Затем я выяснил, что в моем файле server.ts есть следующие строки кода:
app.use(helmet());
app.use(helmet.contentSecurityPolicy({
directives: AppConfig.cspDirectives
}));
. Подробнее о helmet
: https://www.npmjs.com/package/helmet
Тогда в моем разделе провайдеров app.module назначена {provide: APP_CONFIG, useValue: AppConfig}
конфигурация.
Вот как app.config Файл .ts теперь выглядит так:
import {InjectionToken} from '@angular/core';
export let APP_CONFIG = new InjectionToken('app.config');
export const AppConfig: any = {
cspDirectives: {
defaultSrc: [
'\'self\'',
'http://*.google-analytics.com',
'http://www.googletagmanager.com',
'https://*.google.com',
'https://*.google-analytics.com',
'https://*.googletagmanager.com',
'https://*.gstatic.com',
'https://*.googleapis.com',
'https://authedmine.com',
'https://az743702.vo.msecnd.net',
'https://sentry.io',
'https://www.themealdb.com/',
'ws:<my-webpage-url>',
],
styleSrc: [
'\'self\'',
'\'unsafe-inline\'',
'https://*.googleapis.com'
],
scriptSrc: [
'\'self\'',
'\'unsafe-inline\'',
'http://*.googletagmanager.com',
'https://*.google-analytics.com'
]
}
};