我试图通过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>
有什么问题?
由于
答案 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.它不是一个直接的答案,但希望你能找到自己的答案。