Angularjs 科尔多瓦网址';s和图像src具有';不安全';Windows中url的前面
我正在用Angular开发Cordova应用程序,我正在为Windows开发一些东西 我正在尝试这样的事情:Angularjs 科尔多瓦网址';s和图像src具有';不安全';Windows中url的前面,angularjs,cordova,windows-10,Angularjs,Cordova,Windows 10,我正在用Angular开发Cordova应用程序,我正在为Windows开发一些东西 我正在尝试这样的事情: <img ng-src="{{dataDirectory + buildingPhoto.FilenamePhoto}}" class="full-width"> 我还在我的index.html中添加了这个元标记: <meta http-equiv="Content-Security-Policy" content="ms-appdata *; default-src
<img ng-src="{{dataDirectory + buildingPhoto.FilenamePhoto}}" class="full-width">
我还在我的index.html中添加了这个元标记:
<meta http-equiv="Content-Security-Policy" content="ms-appdata *; default-src *; img-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'" />
但它不起作用,所以我有点困在这里,希望有人能把我推向正确的方向。经过几天的搜索,我终于找到了解决问题的方法。
我所做的一切都是正确的。唯一的问题是,我在app.js中应用了所有这些,而在router.js中,所有内容都被不同的代码覆盖
教训:在应用修补程序之前,请始终检查angular应用程序在其他文件中是否有配置,然后使用以下代码修复此问题:
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|blob|ms-appx|ms-appdata|x-wmapp0|unsafe|local):|data:image\//);
还要确保在app.js中的初始设置之后,$compileProvider不会被其他任何地方覆盖,这实际上导致了Joris的问题。这是最好的解决方案
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|chrome-extension|ms-appx-web|ms-appx):|data:image\//);
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|chrome-extension|ms-appx-web|ms-appx):/);
}]);
$compileProvider.imgsrcsanitationwhitelist(/^\s*(https?| file | ms appx web):/)
对我有效,所以可能尝试添加ms appx web
…尝试您的线路,但似乎不起作用。但我不明白,因为我还尝试将| ms appdata添加到正则表达式中,而正则表达式看起来是正确的。我对此一无所知。嗯,你编译的windows版本是什么?您可以添加相应的标签…Windows 10 x64。如何添加相应的标签?我添加了windows-10标签,希望我的编辑能够获得批准;)从这个问题中,我们又学到了一个教训。始终确保在问题中发布完整的代码,以阻止所有角落案例场景。对于悬赏任务来说,这也是非常必要的,因为它得到了很多关注。不管怎样,很高兴你破解了它。干杯
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|blob|ms-appx|ms-appdata|x-wmapp0|unsafe|local):|data:image\//);
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|chrome-extension|ms-appx-web|ms-appx):|data:image\//);
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|chrome-extension|ms-appx-web|ms-appx):/);
}]);