gpt4 book ai didi

php - 在没有ajax的情况下将vars从php传递给js

转载 作者:行者123 更新时间:2023-11-30 06:05:04 25 4
gpt4 key购买 nike

假设我有一个 php 页面...我希望该页面中的 javascript 访问一些用户信息变量(登录后),例如用户 ID、电子邮件等。如果我使用 ajax,那么它将需要一个额外的半秒,因为页面必须加载,然后等待 ajax 获取这些变量,所以我宁愿将它嵌入页面中,但就将电子邮件嵌入源代码的安全性而言,这似乎值得怀疑。

这是我的选择,你能想到更好的方法吗?

1 - 在第一次请求时将数据嵌入到 php 中

<html>
<script>
user_email='<?php echo $user_email; ?>';
</script>

2 - 将数据从 js/php 文件中单独加载,因此它不在原始页面源中

<html>
<script src="userdata.js.php"></script>

--- userdata.js.php ---

user_email='<?php echo $user_email; ?>';

3 - 页面加载后通过 ajax 请求数据(会更慢)

<html>
<script>
$(function(){
$.post('getuserdata.php',[],function(result){
userdata=result;
});
});
</script>

最佳答案

您可能会考虑的另一个选择是在 AJAX 加载后使用 JSONP 异步调用函数。

HTML

<script type="text/javascript">
function handle_response(response)
{
// do whatever you want with the response
// you get a json object here that looks like
// { id: 1, username: 'jimmy' }
}
</script>
<script type="text/javascript src="/path/to/ajax/script.php"></script>

脚本.php

<?php
$arr = array('id' => 1, 'username' => 'jimmy');

$param = json_encode($arr);

header("Content-type: text/javascript");
echo "handle_response({$param})";
exit;

现在,一旦来自 script.php 的有效 javascript 完成加载,它会立即调用您在客户端定义的函数。这使您的信息远离初始 HTML 源代码,您甚至可以将该脚本放在 https 后面,而无需为网站的其余部分这样做。

关于php - 在没有ajax的情况下将vars从php传递给js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555269/

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