我的网络应用程序将数据作为 JSON 字符串从 PHP 发送到 javascript。
为了避免在渲染文件中将字符串写成文本,我想到的架构是用 PHP 在 cookie 上设置数据,然后用 JS 读取。
到目前为止它运行良好,但我在想如果用户可能禁用了 cookie,那么它就不会工作。
所以我有两个问题,一个,如果用户经常禁用 cookie,或者使用 cookie 作为我的数据保存方法是否可以......是否有关于 cookie 禁用行为的研究?我用谷歌搜索但找不到任何最新数据。
其次,是否有另一种方法可以将数据从 PHP(我使用的是 laravel)发送到 javascript 而不必将其写到文件中? (我不能向服务器发出另一个 ajax 请求然后加载数据,因为它会终止用户交互,数据必须与第一个请求一起返回)
谢谢
首先几乎没有人禁用 cookie。如果您禁用 cookie,您访问的网站中有一半将无法使用。
如果你想在不写入文件的情况下“将数据传递给 javascript”(通常你永远不会写入文件以将数据传递给 javascript)你可以简单地这样做:
<script>
var mydata = '<?=$mydata?>'; # take care of escaping single quote of course
</script>
通过这种方式,您无需发出额外的 AJAX 请求。
如果你使用的是 Laravel 的 Blade ,那么:
<script>
var mydata = '{!! $mydata !!}'; # take care of escaping single quote of course
</script>
正如评论中指出的那样,如果您传递的是 json,则只需删除引号:
<script>
var mydata = {!! $mydata !!};
</script>