use*_*412 1 html ajax coldfusion jquery cfc
如果已经回答,我会提前道歉.
我的目标是创建一个分页方案,该方案将变量发送到ColdFusion函数中的查询,该函数抓取X个元素并在我的网页上显示这些记录而不刷新它.因此,为了测试抓取HTML内容并将其显示到屏幕而不刷新的基本功能,我尝试对ColdFusion组件执行简单的AJAX调用,让它返回带有HTML内容的变量,并显示格式化的HTML在我的网页上的div标签内.这是基于我在网络上看到的前一个例子,它使用了cfajaxproxy,虽然这可能是我的问题,但我很惊讶它根本就没有做到它应该做的事情.
我有一个名为testGeneration.cfm的文件,这里是代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<!-- call the jQuery library -->
<script src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#loadLink").click(function(e) {
e.preventDefault();
$.ajax({
type: "GET",
url: "generateInfo.cfc?method=createHTML",
dataType: "html",
success: function(message) {
$("#mydiv").html(message);
}
});
});
});
</script>
</head>
<body>
<a href="" id="loadLink">Load Query</a>
<!-- empty div to load dynamcically generated table into -->
<div id="mydiv"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
如您所见,它使用CreateHTML方法调用组件GenerateInfo.以下是generateInfo.cfc的代码:
<cfcomponent displayname="Generate HTML" output="false">
<cffunction name="createHTML" displayname="Create HTML" description="Creates HTML to output with jQuery." access="remote" output="false" returntype="string">
<!--- SET VARIABLE TO RETURN --->
<cfset VARIABLES.html = "">
<!--- SAVE CONTENT --->
<cfsavecontent variable="VARIABLES.html">
<strong>hello world</strong>
</cfsavecontent>
<!--- RETURN SAVED CONTENT --->
<cfreturn VARIABLES.html>
</cffunction>
Run Code Online (Sandbox Code Playgroud)
现在,当我点击超链接时,它应该显示内容为
你好,世界
相反,它将内容显示为
<strong>你好世界</ strong>
我究竟做错了什么?我如何让它处理作为coldfusion组件函数中的返回变量发回的HTML?
托尼
请尝试将$ .ajax调用更改为此,看看它是否可以解决您的问题:
$("#mydiv").load("generateInfo.cfc?method=createHTML");
Run Code Online (Sandbox Code Playgroud)
编辑
根据您的评论,尝试将其添加到cffunction标记:
returnFormat = "plain"
Run Code Online (Sandbox Code Playgroud)