Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

841
Visualizações
Angular da el error `Se negó a ejecutar el controlador de eventos en línea`

He creado una aplicación angular. que da el siguiente error en el navegador

ingrese la descripción de la imagen aquí

 Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present.

La razón es que angular inyecta lo siguiente en index.html

 <link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'">

Es eso onload="this.media='all'"

Una solución es establecer "optimization" en falso, en cuyo caso angular no inyecta este código. Pero eso no suena como la mejor solución. ¿Alguna sugerencia de cómo hacer esto?

Otra solución, que creo que es un poco mejor que la anterior, es crear un componente contenedor que contenga todo el estilo de styles.scss . En mi caso, para que esto funcione, también necesitaba configurar la encapsultaion de ese componente contenedor en ViewEncapsulation.None

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tuve que agregar esto en la configuración de producción en angular.json

 "optimization": { "scripts": true, "styles": { "minify": true, "inlineCritical": false }, "fonts": true },

Porque "optimization": false hace que el tamaño del paquete sea demasiado grande.

over 4 years ago · Santiago Trujillo Relatório

0

La causa raíz y la solución se tratan aquí: se negó a ejecutar el controlador de eventos en línea porque viola CSP. (SANDBOX) Lograr que Angular lo haga de una mejor manera puede ser un desafío.

Como dice el mensaje de error, puede permitirlo con 'hashes inseguros', pero esa es una característica del nivel 3 de CSP y solo se implementa en los navegadores Chromium.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda