我有一个ColdFusion函数,用于检查表中是否存在记录,如果存在,则返回找到的行的数据。但是,如果记录不存在,我想让它调用我编写的JavaScript函数,并使用从JS函数返回的值继续处理CF函数。我知道CF是用Java编写的,所以我希望能够完成这项任务。
基本上,从CF页面,步骤将是......
有什么想法吗?谢谢你的帮助!
答案 0 :(得分:8)
您需要了解CF和JS不存在于同一环境中,并且不能相互交互:http://blog.adamcameron.me/2012/10/the-coldfusion-requestresponse-process.html。
你的JS可以远程调用CF,但CF无法根据的处理启动对JS的调用,因为在CF正在处理时,一切仍在服务器上,所以JS不是食谱的一部分。
你能做的最好的事情就是让CF代码写出JS代码,然后将其发送到浏览器,然后在浏览器在页面渲染过程中执行JS时执行。
但这真的不符合你想要做的事情。
您所做的任何事情都必须符合请求/响应生命周期。
你可以这样做:
functions.cfc
functions.cfc
的方法调用只能处理,然后将内容返回给在1中触发请求的JS。functions.cfc
以继续处理。你不能做的是让步骤2回调JS 和继续处理,然后将别的东西返回给JS。每个请求只能有一个响应。所以你可能不得不使用多个请求。
答案 1 :(得分:2)
过度复杂的事情试图使用javascript进行ajax调用。刚切换到使用cfhttp,所有都正常工作。 CF的DeserializeJSON方法非常适合解析从Google API返回的json对象。