我在通过 jQuery ajax 调用调用 CFC 时遇到问题。我已经阅读了至少十几篇有关该主题的文章/溢出,但无法获得基本的“Hello World”返回页面。我的环境在 Window 2008 R2 和 IIS7.5 上运行 ColdFusion 11
这是我的 CFC:
<cfcomponent displayname="BU_ldaptest" extends="ADF.apps.BU_Utils.components.App" hint="BU_ldaptest.">
<cfproperty name="version" value="1_0_0">
<cffunction name="helloWorld" access="remote" returntype="string" output="false">
<cfreturn "Hello World!">
</cffunction>
</cfcomponent>
这是我的 CFM:
<cfoutput>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
#application.BU_Utils.BU_ldaptest.helloWorld()#
<button onClick="loadCFC();">Load</button>
<script>
function loadCFC() {
$.ajax({
type: "post",
url: "/ADF/apps/BU_Utils/components/BU_ldaptest.cfc?method=helloWorld",
cache: false,
success: function(msg) {
$("##result").html(msg);
console.log(msg);
},
error: function(msg) {
$("##result").html("Failed");
}
});
console.log("function execute");
};
</script>
<div id="result">...</div>
</cfoutput>
在 CFM 中,“#application.BU_Utils...#”变量确实正确打印“Hello World!”在浏览器中。
我在 CF 管理界面中没有任何 Web 服务设置,这样的功能是否需要它们才能工作?我还知道我最终会希望我的 cfc 返回 JSON,一旦我可以打印出这个简单的字符串,它就会返回 JSON。我一遍又一遍地经历过这种溢出... Invoke ColdFusion function using AJAX
谢谢。
最佳答案
在我的应用程序中,我必须使用 ajax 显示表格,因此我将表格包装在 cfsavecontent 中并返回 cfsavecontent 变量。
示例:
<!--- declaring variable to return to ajax --->
<cfset VAR PlayList =''>
<!--- Saving content inside cfsavecontent to playlist variable --->
<cfsavecontent variable="PlayList">
<table border="1" class="companytab1">
<thead>
<tr class="header">
<th>SlNo</th>
....
<th>Company Name</th>
</tr>
</thead>
<tbody>
<tr>
<!--- SlNo--->
<td align="center" >1</td>
....
<!--- Company Name--->
<td align="center" >Asdf</td>
</tbody>
</table>
</cfsavecontent>
<cfreturn PlayList>
关于javascript - 通过 AJAX 加载的 ColdFusion CFC 返回空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159573/