gpt4 book ai didi

javascript - 使用内容安全策略将服务器数据传递给客户端脚本

转载 作者:行者123 更新时间:2023-12-03 22:45:28 25 4
gpt4 key购买 nike

在 Web 服务器 ( https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP ) 上设置内容安全策略 header 后,任何内联脚本都会被现代浏览器阻止。建议将所有 javascript 放在 .js 文件中,并配置策略以授权托管这些 .js 文件的域。

很好,但我的问题是我们应该如何将数据从服务器端应用程序传递到客户端脚本?

例如,如果我想调用一个以服务器端值作为输入的 js 函数,我仍然必须在被阻止的页面正文中调用如下代码(MVC.Net Razor View)中的函数。

<body>
...
<input type="button" value="Test" onclick="DoSomething('@ViewData["SomeValue"]');" />
...
</body>

我找到了一些在脚本 src 属性查询字符串( http://feather.elektrum.org/book/src.html )中传递数据的方法,但我不确定它是否是最佳解决方案。
我特别担心 src 查询字符串中变量的缓存问题。有更好的方法吗?

最佳答案

由于在第一个请求中有初始数据是非常常见的,这里有一个简单的方法。当您只需要数据时,无需拥有实际的脚本。

<script type="application/json" id="data">{"foo": "bar"}</script>

然后在你的 JavaScript 文件中
var data = JSON.parse(document.querySelector('#data').innerHTML);
alert(data.foo);

关于javascript - 使用内容安全策略将服务器数据传递给客户端脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com