如何通过 php 设置全局 JavaScript 变量,以便值不是公开的


How to set global javascript varibles by php so the values are not public?

我有 api 密钥,我不想在公共场合显示,但我仍然想将它们分配为全局 JavaScript 变量,以便我可以在脚本中访问它们。api密钥存储在数据库中,可通过php获得。

假设我有一个 php 变量$key我想分配给全局 javascipt 变量。不是我所做的是在 head 标签中使用这行代码。

window.key = <?php echo $key; ?>;

但这样,api密钥在头标签中是完全开放的。我想你明白了。谢谢!

仅供参考:我在wordpress工作。因此,如果有任何特定于wordpress的解决方案,我们非常欢迎您!

这是不可能的,因为 JavaScript 是客户端的,因此总是公开的。

尝试通过 ajax 请求密钥。

使用它的人可以检查请求的答案,也可以通过控制台显示变量.log在Firebug控制台中。

JavaScript 变量对客户端始终可见。

所有javascript都是可见的。您没有告诉我们为什么需要 api 密钥,所以我提出以下解决方案:

  1. 您可以为客户端设置临时 api 密钥

  2. 如果客户端想通过 api 密钥下载文件,您可以使用用 php 编写的代理,因此当客户端下载页面 http://yoursite/proxy/其隐藏的下载 http://somesite/api/api-key/并返回给客户端