“如何将变量和数据从PHP传递到JavaScript?”的已接受答案列出了许多方法。在“如何从JavaScript中读取脚本标记中的JSON”中讨论了未明确提及的内容(尽管它适用于方法2) ?“。它的工作原理是使用PHP函数(复制自 Mathias Bynens )


 json_encode($ data,JSON_HEX_TAG | JSON_UNESCAPED_SLASHES)



 编写标签的内容,例如


 < script id =“data”type =“application / json”> {org:10,items:[“一个“,”两个“]}< / script>



 (从 c-smile )的答案,然后是通过JavaScript读取DOM。


这似乎是我的最佳方法(我宁愿不做单独的AJAX调用),但我有点担心它似乎不是做这些事情的标准方式。是否存在我应该注意的潜在安全问题?


这可能是合理的未来证据吗?是否有可能会对< script>
标记或浏览器处理 type =“application / json”
的方式进行更改,从而破坏这种方法?
更新


以下是一个示例方法:


 < html>
< head>
< script id =“data”type =“application / json“>
<?php
 $ data = array(
”org“=> 10,
”items“=>数组(”one“, “两个”),
“反斜杠”=>“\\”,
“斜杠”=>“/”,
“单引号”=>“'”,& #xA;“double quote”=>“\”“,
”关闭标记“=>”< / script>“
);
 echo json_encode($ data,JSON_HEX_TAG );
?>
< / script>
< / head>
< body>
< script>
 var data = JSON.parse(document.getElementById(“data”)。innerHTML);

 for(数据中的var键){
 if(data.hasOwnProperty(key)){
 var p = document.createElement(“pre”);
 document.getElementsByTagName( “正文”)[0] .appendChild(P);
 p.appendChild(document.createTextNode(数据[键]的ToString()));
 }
}
< /脚本>
< / BODY>
< / HTML>
 代码>

 { {66}}
{{11}}
40376813
{{22}}
{{33}}
一段时间后MySQL连接超时(Python,MySQL,FLASK)
{{44}}
{{55}}
我目前正在uWGI的帮助下运行在NGINX服务器上运行的烧瓶python应用程序。静态页面始终可访问,但使用连接(MySQL)的页面在2分钟后超时。这是怎么回事?它们变得简单无法使用。


我尝试过的事情:


。


 #using python version 2.7.10
 from flask import Flask,jsonify,request,session
 import mysql.connector.pooling
&# xA;#与DB

 dbconfig = {
建立连接“主持人”:“12.34.5.78”,
 “database”:“db”,
 “user”:“user”,
 “password”:“pass”
}

 conn = mysql.connector.connect(pool_name =“mypool”,
 pool_size = 6,
 ** dbconfig) 

 #Define root
 app = Flask(__ name __)

 #Landings page
 @ app.route('/')
 def index ():
返回“Hello World。”

#按名称返回所有资源
 @ app.route('/ resources',methods = ['GET'])
 def allResourceNames(): 
 conn1 = mysql.connector.connect(pool_name =“mypool”)
 reader = conn1.cursor()
 query =(“SELECT name FROM resources”)
 reader.execute(查询)
 resources = []
读者名字:
 resources.append({'name':name [0]})
 reader.close()
 conn1.close()
 return jsonify({“resources”:resources})

 if __name__ ==“__ main __”:
 app.run(调试=真)
 代码>


答案 0 :(得分:0)
您可以使用变量:
在你的php中:
<?php
$data = array(
"org" => 10,
"items" => array("one", "two"),
"backslash" => "\\",
"slash" => "/",
"single quote" => "'",
"double quote" => "\"",
"close tag" => "</script>"
);
?>
你的html:
<script>
var data = <?php echo json_encode($data); ?>
</script>
你可以用:
给你打电话JSON.parse(data);