jQuery AJAX 和 CFM 文件中的函数

jQuery AJAX and functions in a CFM file

我已经搜索了大约 3 天了,但仍然找不到我问题的正确答案。

如果之前有人问过这个问题,我深表歉意。请与我分享 link 正确答案。

问题。 是否可以使用 jQuery AJAX 来调用 somefile.cfm(而不是 .cfc)页面中的函数?

我的场景如下:

我在somefile.cfm中有很多功能,其中之一就是abc。我正在尝试使用以下 jQuery 代码从 index.cfm 调用位于 somefile.cfmfunction abc 并将其响应作为 json 字符串。

index.cfm

...
$.ajax({
  url: 'somefile.cfm',
  type: 'post',
  dataType: 'json',
  data: {method: abc. name: 'don'},
  success: function(res){
     alert(res);
  }
});

somefile.cfm

<cffunction name="abc" returntype="any" returnFormat="json">
  <cfargument name="name" required="yes" type="string">

    <cfset text['name'] = name>
    <cfset jsonvar = serializeJSON(text)>
    <cfreturn jsonvar>
</cffunction>

现在,当我拨打电话时,我得到的只是一片空白。似乎没有调用该函数。我没有收到任何错误。

有可能吗?还是我需要将此页面转换为 coldfusion 组件 cfc file?请帮忙。我需要你的专业知识。

谢谢。

你真的应该为此使用 cfcs

如果由于某种原因您不能执行上述操作,则需要在 cfm 页面上添加一个 cfscript 块来调用该函数。您可以使用 case 或 if 语句来根据从 jquery 传递的内容调用 abc 函数。同样,不推荐。

如果您使用 ajax 调用 .cfm 文件,那么无论页面正常输出什么,都会返回给调用者。如果您在函数返回的 JSON 周围使用 cfoutput 标签,您应该能够获得所需的结果。由于您正在创建 POST 您的变量将在 FORM 范围内可用。一旦你掌握了 FORM.method,你就知道用 FORM.name 调用什么函数。输出该调用的结果。这是一个示例:http://www.raymondcamden.com/2009/03/17/Simple-example-of-loading-a-ColdFusion-query-with-jQuery