如何输出JavaScript字符串?
我正在cfm文件中的脚本标记中构建JSON字符串。我想找到一种方法将这个JSON字符串放入cfoutput中,这样页面就可以显示JSON了 我目前正在如何输出JavaScript字符串?,javascript,json,coldfusion,stringify,cfoutput,Javascript,Json,Coldfusion,Stringify,Cfoutput,我正在cfm文件中的脚本标记中构建JSON字符串。我想找到一种方法将这个JSON字符串放入cfoutput中,这样页面就可以显示JSON了 我目前正在document.write()ing json,它在浏览器中检索json,但不会返回任何POST请求。我尝试过使用toScript()coldfusion函数,但我认为这与我想要的正好相反(当我想将js变量放入cf时,将cf变量放入js) 我现在正在做这个 <cfoutput> <script type = "text/
document.write()
ing json,它在浏览器中检索json,但不会返回任何POST请求。我尝试过使用toScript()coldfusion函数,但我认为这与我想要的正好相反(当我想将js变量放入cf时,将cf变量放入js)
我现在正在做这个
<cfoutput>
<script type = "text/javascript">
var someJSON = "{\"some\": \"data\"}";
document.write(JSON.stringify(someJSON));
</script>
</cfoutput>
var someJSON=“{\'some\':\'data\'”;
document.write(JSON.stringify(someJSON));
我仍在处理coldfusion,如果这看起来过时了,我很抱歉。我想将
someJSON
传递给一个coldfusion变量,这样我就可以使用cfoutput标记,这样我就可以得到一个对这个特定端点的POST请求响应,因为目前我没有得到响应。要将字符串从coldfusion中取出并转换成Javascript,需要执行以下操作:
<cfset cfdata = {"some": "data"}>
<cfoutput>
<script type = "text/javascript">
var someJSON = #serializeJSON(cfdata)#;
document.write(JSON.stringify(someJSON));
</script>
</cfoutput>
var someJSON=#serializeJSON(cfdata)#;
document.write(JSON.stringify(someJSON));
结果
请参阅:您有一些
表单.cfm
正在向数据.cfm
发出Ajax请求。数据
文件应将JSON
返回到表单
文件中的JavaScript
data.cfm
文件基本上需要这样做:
<cfscript>
data = {
a: 1,
b: 2,
c: 3
};
cfcontent(type="application/json; charset=UTF-8")
writeOutput(serializeJSON(data))
</cfscript>
因为ColdFusion以大写形式存储结构键。为了使数据以小写键的形式返回,您可以
data = {};
data["a"] = 1;
data["b"] = 2;
data["c"] = 3;
或
然后返回带有小写键的JSON
{"a":1,"b":2,"c":3}
你一定要小心。如果您有客户端JavaScript并希望向服务器端ColdFusion提交信息,则需要通过HTTP发送这些信息。这可以通过使用
提交或通过FormData
使用AJAX(XHR=XML HTTP请求)来完成。但是不会返回任何带有POST请求的内容。您能详细说明一下“带有POST请求”是什么意思吗?你是说另一个页面正在将数据发布到.cfm脚本中,你想用cfoutput显示它吗?我想知道用户是否只想设置一个
,然后这样发布。用户可以这样做:是的,这是可能的-尽管提到“这个特定端点”表明脚本可能收到一篇帖子。如果没有更多的澄清,很难说……编辑@KarimShoorbajee-是的,这不会像你希望的那样起作用。即使您可以在同一个文件中混合使用JS/CF代码。您不能从CF输出javascript变量,因为它对JS一无所知,JS也不理解CFML。即使是这样,时间安排也不可能。CF代码首先执行。它被转换成html并返回到web服务器。然后CF服务器断开连接。当你的浏览器得到它时,CF服务器早已不存在了。我认为他正试图做相反的事情;-)但是尽管这篇文章重读了两遍,但我仍然不完全清楚为什么——或者它是否真的是需要的。
data = {
"a": 1,
"b": 2,
"c": 3
};
{"a":1,"b":2,"c":3}