javascript - 从 PHP 将数据传递到 JavaScript 的替代方案?

标签 javascript php

我有一个相当大的应用程序,目前我正在尝试找到一种方法来绕过必须通过 DOM 传递来自 PHP 的数据(第 3 方 API 等的用户 token )。目前,我在单个元素上使用 data-* 属性并从中解析数据,但它非常困惑。

我考虑过将元素的内容编码为 JSON 并包含所有配置,这将极大地提高结构和有效性,但同时在 DOM 中存储敏感信息并不理想或不安全。

通过 AJAX 获取数据也不太可行,因为应用程序在任何页面上始终需要此信息 - 因此在允许用户输入或控制之前在每个页面加载时运行 AJAX 请求对于用户来说将是一件痛苦的事情向我的服务器添加负载。

我考虑过的事情是对信息进行初始请求,将其与数据校验和一起存储在缓存/本地存储中,并将最新数据的校验和包含在 DOM 中。因此,在每次页面加载时,它都会比较校验和,如果它们不同(JavaScript 在缓存/本地存储中存储了过时的数据),它将发送另一个请求。

我不想走这条路,我想知道您是否可以想到更好的方法。我在其他问题/Google 中找不到任何替代方法,因此非常感谢您的帮助。

最佳答案

您还可以创建一个 php 文件并将 header 设置为 javascript 类型。请求此文件作为普通的 javascript 文件。 <script src="config.js.php"></script> (考虑到文件名是 config.js.php)您可以构造您的 JavaScript 代码并简单地动态分配值。

出于安全考虑,特别是需要登录时,只有在用户登录或其他情况后才能返回此文件。否则,您只需返回一个空白文件。

关于javascript - 从 PHP 将数据传递到 JavaScript 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29660413/

相关文章:

javascript - 我们如何通过使用javascript重新排列它来获得与给定非负整数相似的所有可能非负整数的数量

php - 什么是 PHP 中的对象克隆?

php - mysql 选择 if 条件

php - Ruby 中的 preg_match_all 和 preg_replace

php - mysql和/或一起查询

javascript - Angular js : set min time dynamically for &lt;input type ='time' > not working

javascript - projects.map 不是 jest-cli 的函数

javascript - 为什么 call 不能用作 A 排序函数?

javascript - 解释/解析来自蓝牙心率监测器(Cordova)的数据

PHP openssl_sign 停止执行所有脚本