Я пытаюсь использовать угловой httpClient для доступа к реестру npm для получения определенных зависимостей пакета
Когда я выполняю запрос, я получаю сообщение об ошибке CORS
Доступ к XMLHttpRequest в 'https://registry.npmjs.org/async/2.0.1' от источника 'http://localhost:4200' заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». http://registry.npmjs.org/async/2.0.1
this.httpClient.get(requestUrl).pipe(catchError(this.handleError)).subscribe((result: any) => { console.log(result); });`
Нужно ли добавлять заголовки для запроса, чтобы это работало?
Если вы разрабатываете локально, вы не можете сильно изменить свой код, потому что реестр npm будет блокировать все, что вызывается с localhost. Чтобы это работало, вы можете использовать прокси-серверы CORS, например https://cors -anywhere.herokuapp.com
Таким образом, URL вашего запроса изменится на https://cors - где угодно. herokuapp.com/https://registry.npmjs.org/async/2.0.1
и вы можете изменить свой код на что-то похожее:
if(!environment.production) { const corsProxy = 'https://cors-anywhere.herokuapp.com/' requestUrl = `${corsProxy}${requestUrl}` } this.httpClient.get(requestUrl).pipe(catchError(this.handleError)).subscribe((result: any) => { console.log(result); });`