返回值显示.ajax()的成功方法中的错误

时间:2011-03-01 15:46:08

标签: jquery ajax

我的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: . &lt;br /&gt;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个字符串值。希望这有帮助!

3 个答案:

答案 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远程不可用,因为它超出了此请求的范围。

再次感谢!