获取错误资源违反指令'script-src ms-appx:'主机定义策略中的'unsafe-eval'':内联脚本。资源将被阻止

问题描述 投票:2回答:2

我正在尝试使用Visual studio制作通用的Windows应用程序。当我尝试运行以下代码时:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>testProject</title>
    <link href="css/default.css" rel="stylesheet" />
</head>
<body>
    <div>Content goes here!</div><script src="js/main.js"></script>
    <form name="myForm">

           <input type="radio" name="myRadio" value="yes"/>  Yes <br />
           <input type="radio" name="myRadio" value="No"/> No <br />
           <input type="button" name="submit"value="submit" onsubmit="return validateForm" />
    </form>
</body>
</html>

在JavaScript主文件中:

function ValiditeForm(){

    document.writeln("Hello World");
}

当我尝试运行时,我收到以下警告:

CSP14312:主机定义策略中的资源违反指令'script-src ms-appx:'unsafe-eval'':内联脚本。资源将被阻止。

我只是想做的就是使用visual studio通用应用程序编写HTML代码,当用户单击HTML表单中的单选按钮时,它将被传递给JavaScript中的函数并打印出一个值。

javascript html visual-studio
2个回答
1
投票

这是因为内容安全策略而发生的

来自MDN

HTTP Content-Security-Policy响应标头允许网站管理员控制允许用户代理为给定页面加载的资源。除了少数例外,策略主要涉及指定服务器源和脚本端点。这有助于防止跨站点脚本攻击(XSS)。

您的服务器正在发送Content-Security-Policy HTTP标头,阻止您的浏览器信任您的javascript文件。

您可以更改CSP标题,以便内联<script>,如果您的服务器是IIS,请在HTTP Response heathers上查找inetmgr.exe选项

inetmgr

通过从您的配置中删除unsafe-eval,您已经完成了设置。

unsafe-eval

这对于开发来说是可以的,但对于生产环境则不行。互联网上有一些很酷的实用程序可以帮助您为特定文件生成有效的CSP。例如谷歌的“CSP标头生成器”。


-1
投票

更正所有其他语法错误。单击程序运行时收到的错误消息(错误输出窗口顶部的“x”)。终止你的程序。关闭你的解决方案退出Visual Studio。

重命名项目文件夹。从新文件夹中打开Visual Studio。重新尝试你的解决方案。现在,当您进行调试时,您将看不到错误。

© www.soinside.com 2019 - 2024. All rights reserved.