2016-01-18 10 views
6

Sto usando MVC6 (asp.net 5) usando angolare e provando a caricare script da posizioni cdn quando il mio codice è in esecuzione in modalità di rilascio, ma per qualche motivo gli script non caricare mai.Rifiutato di caricare lo script perché viola la seguente direttiva Content Security Policy: "style-src 'self' 'non sicuro-inline'

ho letto che è necessario aggiungere un meta tag al file html, che ho fatto, in questo modo.

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; style-src 'self' https://ajax.aspnetcdn.com; font-src 'self' http://netdna.bootstrapcdn.com" /> 

E sul mio Index.cshtml, ho ottenuto questo.

<environment names="Staging,Production"> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js" 
     asp-fallback-src="~/lib/angular/angular.min.js" 
     asp-fallback-test="window.angular"> 
    </script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js" 
     asp-fallback-src="~/lib/angular-ui-router/release/angular-ui-router.js" 
     asp-fallback-test="window.angular && window.angularUiRouter"> 
    </script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.2.2/angular-local-storage.min.js" 
     asp-fallback-src="~/lib/angular-local-storage/dist/angular-local-storage.js" 
     asp-fallback-test="window.angular && window.localStorage"> 
    </script> 

Ma non caricano mai. Ho provato a eseguire il codice utilizzando IISExpress e anche utilizzando il comando DNX Web.

Ho il post this che è come sono venuto a creare il tag META, ma non sono sicuro del motivo per cui non funziona. Ho provato questo in Chrome, e sotto console, ottengo solo errori in questo modo

enter image description here

+0

Ho un problema simile qui. Sei stato in grado di aggiustare il tuo? –

+0

lo stesso problema che ho ricevuto –

risposta

2

Inserire il seguente nella sezione Intestazione pagina web:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://cdnjs.cloudflare.com "> 

Maggiori dettagli sulla politica di sicurezza Contenuti può leggere here e here.

+0

No, anche questo non funziona – Gillardo

+0

Per favore, leggi anche i due link che ho postato nella risposta - forse nel tuo caso dovresti semplicemente aggiungere più indirizzi di siti web alla fine per consentire il caricamento di javascript da loro. In realtà, come posso vedere dal tuo screenshot, devi assolutamente aggiungere tutti i siti Web esterni. – drcolombo

+0

Quindi, hai risolto il tuo problema? – drcolombo

0

Nel mio caso questa politica è impostata tramite SecurityHeadersAttribute (questo attributo è impostato in AccountController e altri).

Fondamentalmente questo aggiunge il criterio predefinito nello headers che sovrascrive il tag meta. Quindi è necessario modificare questa politica o rimuovere l'attributo dal controller.

Problemi correlati