2

我有一个 ColdFusion 函数,用于检查表中是否存在记录,如果存在,则返回找到的行的数据。但是,如果记录不存在,我想让它调用我编写的 JavaScript 函数,并使用从 JS 函数返回的值继续在 CF 函数中处理。我知道 CF 是用 Java 编写的,所以我希望有办法执行这项任务。

基本上,从 CF 页面,步骤将是......

  1. 调用位于我的 functions.cfc 文件中的 CF 函数
  2. 在 CF 函数中,调用 JavaScript 函数并等待响应
  3. 使用 JS 函数返回的值在 CF 函数中继续处理。

有任何想法吗?感谢您的任何帮助!

4

2 回答 2

8

您需要了解CF和JS不存在于同一环境中,并且不能像那样相互交互:http: //blog.adamcameron.me/2012/10/the-coldfusion-requestresponse-process.html

您的 JS 可以远程调用 CF,但 CF 无法根据处理发起对 JS 的调用,因为当 CF 正在处理时,一切仍在服务器上,因此 JS 不是配方的一部分。

你能做的最好的就是让CF代码写出JS代码,然后发送到浏览器,然后当浏览器在页面渲染期间执行JS时执行。

但这确实不符合您在这里想要做的事情。

您所做的任何事情都必须适应请求/响应生命周期。

你可以这样做:

  1. 从一个已经加载的页面,对一个方法进行 JS 调用functions.cfc
  2. functions.cfc的方法调用只能处理然后返回一些东西给在1中触发请求的JS。
  3. 然后 JS 可以决定下一步要做什么,也许会触发另一个请求functions.cfc以继续处理。

您不能做的是让第 2 步同时回调 JS继续处理,然后稍后将其他内容返回给 JS。每个请求只能有一个响应。因此,您可能必须使用多个请求。

于 2013-10-11T15:58:46.803 回答
2

尝试使用 javascript 进行 ajax 调用使事情变得过于复杂。刚刚切换到使用 cfhttp,一切都按需要工作。CF 的 DeserializeJSON 方法非常适合解析从 Google API 返回的 json 对象。

于 2013-11-07T14:41:07.013 回答