我的coldfusion页面中有一个jQuery ajax调用,如下所示:
function getData(paramValue)
{
var URL = "/cfc/**somecfc.cfc**?method=**somemethod**";
$.ajax({
type: "POST",
url: URL,
data: ({ paramValue: paramValue}),
dataType: "text",
success: function(data) { alert(data);},
error:function (xhr, ajaxOptions, thrownError){
alert("xhr.status = " + xhr.status);
alert("thrownError = " + thrownError); }
});
}
somecfc中的某些方法返回文本值。当我尝试查看成功的数据时,它显示以下错误:
"<wddxPacket version='1.0'><header/><data><string>ERROR: . <br />Element SETTINGS is undefined in a Java object of type class [Ljava.lang.String;.</string></data></wddxPacket>"
由于它在成功中显示错误,因此返回数据似乎有问题或?
任何帮助解决这个问题都将受到高度赞赏。
cfc方法中的代码如下:
<cffunction name="somemethod" access="remote" returntype="any" o>
<cfargument name="paramValue" type="string" required="yes" >
<cfset var returnValue = "" />
<cfquery name="someQry" datasource="#variables.settings['dsn']#" >
SELECT value_name
FROM valuesTbl
WHERE value_Id = <cfqueryparam value="#arguments.paramValue#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfset returnValue = #someQry.value_name# />
<cfreturn returnValue />
</cffunction>
returnValue变量只有1个字符串值。希望这有帮助!
答案 0 :(得分:2)
你有1次成功,1次失败。 Ajax请求按计划进行,您发出请求(有效)并获得有效响应(某些文本,特别是xml)。看起来ColdFusion方面抛出了一个异常,它能够捕获并转换为响应(你从ajax请求中收到的xml)。
IE:你的ajax请求进展顺利(返回HTTP 200),但是ColdFusion方面出了问题。如果存在HTTP 500/400系列错误,您将只能访问错误处理程序。
答案 1 :(得分:1)
ColdFusion(默认情况下)实际上返回带有应用程序错误的状态代码200,而不是正确的500.x响应。 $ .ajax查看HTTP状态代码(&lt;&gt; 200)以确定是否触发“错误”回调。
答案 2 :(得分:0)
感谢大家回答我的问题。错误是在coldfusion方面。它与我#Application.Settings['DSN']#
使用的DSN有关,该DSN远程不可用,因为它超出了此请求的范围。
再次感谢!