jquery - $.ajax 调用 ColdFusion 组件输出文本而不是 HTML

标签 jquery html ajax coldfusion 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>

如您所见,它使用方法 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>

现在,当我点击超链接时,它应该将内容显示为

Hello World

相反,它将内容显示为

Hello World

我做错了什么?我如何让它处理作为 coldfusion 组件函数中的返回变量发回的 HTML?

托尼

最佳答案

请尝试更改对此的 $.ajax 调用,看看它是否能解决您的问题:

$("#mydiv").load("generateInfo.cfc?method=createHTML");

编辑

根据您的评论,尝试将其添加到 cffunction 标记中:

returnFormat = "plain"

关于jquery - $.ajax 调用 ColdFusion 组件输出文本而不是 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524456/

相关文章:

javascript - jQuery 相当于 Ajax 请求中 javascript 的 Transport.responseText 吗?

javascript - Ajax 中的计时器 - 抢占

Jquery UI 和 HTML5 日期选择器 - 日期格式不正确

jquery - 如何将 jquery ui 小部件嵌入到polymer-dart web 组件中

jquery - 如何禁用 JQTE 编辑器?

html - 不能在 div 中 float img 和 div

javascript - HTML5 显示视频缩略图预览

html - 带有 overflow-y 的段落 :scroll is displacing my downside Div

html - 如何避免搞乱格式化?

jquery - 数据插入成功但jquery仍然返回错误