使用coldfusion和jquery显示ajax响应

时间:2012-03-21 19:10:03

标签: jquery coldfusion

我试图通过POST响应使用jQuery ajax获取一段数据,但我似乎无法显示数据。这是我正在使用的代码。

$(document).ready(function(){
  $('#contentdiv').html(' ');
    $("#idm").change(function(){
      var formval = {idm:$(this).val()};
      $.ajax({
          type: "POST",
          url: "request_processor.cfm",
          dataType: "json",
          data: formval,
          success: function(response){
             $('#contentdiv').fadeIn(2000).append(response.DESCRIPTION);}
      });   
    });
 });

这是我从CFC回来的JSON。

{"DESCRIPTION":"Global Alpha I Benchmark"} 

以下是request_response.cfm

中的代码
<cfset oData = CreateObject("component","menudata")>
<cfset oData.setDataSource(dsn)>
<cfset theData = oData.getMenuData(FORM.idm)>
<cfset oJSON = createObject("component","cfjson")>
<cfset theResults = oJSON.encode(theData)>
<cfoutput>#theResults#</cfoutput>

有什么问题?

由于

1 个答案:

答案 0 :(得分:0)

在firebug或chrome开发人员工具的网络工具中查看您从ajax请求中获得的响应。确保你只获得JSON,而不是别的。

如果您在JSON之前或之后收到垃圾邮件,那么您需要使用cfsetting来限制输出,以防止输出除cfoutput标记之外的内容。

您应该尝试在CFC上实际调用方法,而不是调用cfm页面并使用函数和/或ColdFusion中内置的JSON函数的returnformat属性。

您还应该确保#contentdiv元素是有效的HTML。一旦响应回来,您是否查看了页面的来源?是否有任何东西出现在DOM元素中,你给出了idd为“contentdiv”?如果是,那么你有CSS / javascript问题。

你应该在CSS中看到它,并且只在没有fade()的情况下进行追加调用。您需要确保“contentdiv”实际上能够在您的页面上显示。一旦你在页面上显示了描述,然后重新引入淡入淡出()。但是,淡入淡出应该在追加后链接,而不是之前。

老实说,这只是调试101.它不是一个直接的答案,但希望你能找到自己的答案。