rov*_*red 9 javascript php jquery json
我正在尝试创建一个常见的常量文件,在php和javascript之间共享,使用JSON存储常量.但我想知道为什么使用json_encode()过度回显json声明将JSON从PHP传递给javascript .
假设我有PHP JSON
<?php
$json_obj = '{"const1": "val",
"const2": "val2"
}';
?>
Run Code Online (Sandbox Code Playgroud)
谷歌搜索,似乎传递回javascript的典型方式是使用
<?php echo json_encode($json_obj); ?>
Run Code Online (Sandbox Code Playgroud)
然后我相信我将不得不使用类似的东西$.getScript()来读取PHP文件$json_obj,然后用parseJSON()它来使它在javascript中可用.
但为什么不呢
<?php echo 'var json = '.$json_obj; ?>
Run Code Online (Sandbox Code Playgroud)
这样你所要做的就是直接加载脚本,你可以直接使用json.
是否有一个特殊的原因,为什么它更有利于使用json_encode()然后简单地回应javascript的声明?
这一切都取决于您想从服务器发送到客户端的内容 - 无论是数据(JSON)还是某些代码.
两种方法:
回声服务器上的JSON文件-然后打印您的JSON文件,并设置响应Content-Type 至application/json.通过这种方式,您可以使用任何您想要的AJAX库,例如$.get或原始XMLHttpRequest等.这是一种传递数据的方式.
在服务器上回显Javascript代码,然后用于$.getScript加载它.这是传递代码的一种方式.这可能不太安全,因为您的代码不仅可以包含JSON,还可以包含任何仲裁代码.因此,如果攻击者可以破坏您的服务器,他就可以将代码推送到任何客户端以进行远程执行.
如果您只想传递数据,请使用第一种方法.它更清洁,更安全.
另外,如果您最终在不同的环境中编写前端,比如说不同的编程语言,您将能够重用相同的JSON返回端点.如果你返回Javascript代码会更难.
小智 5
将 PHP JSON 传递给 Javascript 并读取
var data = <?php echo json_encode($json); ?>;
var arr = new Array();
arr = JSON.parse(data);
document.write( arr[0].something );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44690 次 |
| 最近记录: |