【发布时间】:2019-12-14 09:51:15
【问题描述】:
我正在 cfm 文件的脚本标签中构建 JSON 字符串。我想找到一种方法将此 JSON 字符串转换为 cfoutput,以便页面可以显示 JSON。
我目前只是document.write()ing json,它在浏览器中检索 JSON,但不会通过 POST 请求返回任何内容。我试过使用 toScript() Coldfusion 函数,但我认为这与我想要的相反(当我想将 js var 放入 cf 时,将 cf var 放入 js)。
我现在正在做这个
<cfoutput>
<script type = "text/javascript">
var someJSON = "{\"some\": \"data\"}";
document.write(JSON.stringify(someJSON));
</script>
</cfoutput>
我仍在处理冷融合,如果这看起来过时,我很抱歉。我想将someJSON 传递给一个coldfusion 变量,这样我就可以使用cfoutput 标记,这样我就可以得到一个对这个特定端点的POST 请求的响应,因为目前我没有得到任何响应。
【问题讨论】:
-
确保您understand the difference between serverside and clientside。如果您有客户端 JavaScript 并希望向服务器端 ColdFusion 提交信息,则需要通过 HTTP 发送它们。这可以通过使用
<form>提交或通过FormData使用 AJAX(XHR = XML HTTP 请求)来完成。 -
但不会通过 POST 请求返回任何内容 您能否详细说明“使用 POST 请求”是什么意思?你是说另一个页面正在向你的 .cfm 脚本发布数据,并且你想用 cfoutput 显示它吗?
-
我想知道用户是否只想设置一个
<input type="hidden">并以这种方式发布。用户可以这样做:stackoverflow.com/questions/2979772/… -
是的,这是可能的——尽管提到“这个特定的端点”表明脚本可能是接收一个 POST。很难说没有更多的澄清......
-
编辑 @KarimShoorbajee - 是的,这不会像你希望的那样工作。即使您可以在同一文件they don't interact all 中混合 JS/CF 代码。你不能从 CF 输出一个 javascript 变量,因为它对 JS 一无所知,JS 也不理解 CFML。即使它做到了,时机也使它成为不可能。 CF 代码首先执行。它被转换为 html 并返回到 Web 服务器。然后 CF 服务器断开连接。当您的浏览器获取它时,CF 服务器早已不复存在。
标签: javascript json coldfusion stringify cfoutput