2010-02-06 52 views
2

我想连接我的Flex应用程序到一个CFC我有调用方法。这是测试一个登录控件,当我把正确的凭据,它回来的错误:“SOAP响应无法解码。原始响应:”。Flex HTTPService:SOAP响应无法解码。原始响应:

的CFC方法是:

<!--- Array of Users is called ---> 
    <cfset user = EntityLoad("User", {emailAddress='#arguments.emailAddress#', password='#arguments.password#'}, true) /> 
    <cfset returnvar = "false"/>  
    <cftry> 
     <cfif user[1].firstName> 
      <cfset returnvar = "true"/>     
     <cfelse> 
       <cfset returnvar = "true"/> 
     </cfif>      
    <cfcatch type="any"> 
     <cfset returnvar = "false"/>  
    </cfcatch> 
    </cftry> 


      <cfreturn returnvar /> 
</cffunction> 

我不知道如何德科雷这一点。 CFC方法返回一个字符串,我用它作为标志。应该改变吗? 谢谢你们

+0

注意经过一些测试后,我注意到,如果我将cfreturn更改为“测试”,它会显示在flex应用程序中,所以我推断出entityLoad行出现了一些问题。奇怪的是,如果我得到用户名和密码组合错误,它显示“测试”被返回,但是当它是正确的,我得到相同的错误错误 – Doz

+0

这与这个问题有关:http://stackoverflow.com/questions/2581799/flex-3-and-soap-response –

回答

2

以下是我认为正在发生的事情:

1:用户被返回( “鲍勃”)

2:CF试图评估用户[1] .firstname作为一个布尔值,但鲍勃不是布尔

3:returnvar被设置为假,但错误停止从继续进行处理的功能(这是一个猜测)

4:预期值类型不返回到Flex中,所以Flex错误

首先,我要测试步骤3通过改变catch块

<cfcatch><cfreturn "false"></cfcatch> 

然后,代替[1] .firstname用户切换,身份证上user.recordcount切换。

+0

谢谢我使用一系列cfcatch解决了这个问题,然后试着去看看我们回来的是什么:) – Doz