埃瓦尔是我唯一的选择吗?

Is Eval my only option?

本文关键字:选择 唯一 埃瓦尔      更新时间:2023-09-26

我想知道 Eval() 是否是我在服务器上调用脚本并在这些文件上执行 javascript 的唯一选择。

我看到关于 Eval 安全问题的每一个地方,人们不推荐它 - 那么有没有安全的方法可以使用 javascript 请求文件并执行该 JS?

不,您不必评估,尽管如果您信任输入,这样做就可以了。最好还是只传输数据而不运行代码。

您可以动态创建脚本标记:

var script = document.createElement('script');
script.src = 'path/to/javascript/to/run';
document.body.appendChild(script);

我在 asp.net mcv3 Web 应用程序中广泛地执行此操作,以使用 jQuery.load() 动态加载脚本化分部视图

只需文档编写脚本包含到页面即可。然后客户端的浏览器会为您完成此操作,您几乎可以忽略它的安全性方面。