2016-01-18 86 views
6

我正在使用使用角度的MVC6(asp.net 5)並嘗試從cdn位置加載腳本當我的代碼在釋放模式運行,但由於某種原因,腳本不能被負載。拒絕加載腳本,因爲它違反了以下內容安全策略指令:「style-src'self''unsafe-inline'

我已閱讀,你需要一元標記添加到您的HTML文件,我已經做到了,就像這樣。

<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" /> 

而在我的Index.cshtml上,我已經得到了這個

<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> 

但他們從未加載。我嘗試使用IISExpress運行代碼並使用DNX Web命令。

我有this這是我如何創建META標籤,但不知道爲什麼它不工作。我已經在Chrome嘗試這一點,並在控制檯,我只是得到像這樣

enter image description here

+0

我在這裏有類似的問題。你有能力解決你的問題嗎? –

+0

我得到的同樣的問題 –

回答

2

錯誤放入網頁標題部分如下:

<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 "> 

更多內容安全策略,你的細節可以閱讀herehere

+0

不好,那也不行 – Gillardo

+0

請閱讀我在答案中發佈的兩個鏈接 - 也許在你的情況下,你應該在最後添加更多的網站地址,以允許從他們。實際上,從我的截圖中可以看出 - 你絕對應該在那裏添加所有的外部網站。 – drcolombo

+0

那麼,你是否解決了你的問題? – drcolombo

0

在我的情況下,這個政策是通過SecurityHeadersAttribute設置的(該屬性在AccountController和其他一些設置)。

基本上,這會在headers中添加覆蓋meta標記的默認策略。所以你需要改變這個策略或從Controller中刪除屬性。

相關問題