FLEX HTTPSERVICE: A resposta do sabão não pode ser decodificada. Resposta bruta:
-
19-09-2019 - |
Pergunta
Estou tentando conectar meu aplicativo Flex a um CFC que tenho que chama um método. É para testar um controle de login e, quando coloco as credenciais corretas, ele volta com o erro: "A resposta do SOAP não pode ser decodificada. Resposta bruta:".
O método 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>
Não tenho certeza de como decorar isso. O método CFC retorna uma string, que eu uso como sinalizador. Isso deve ser alterado? Obrigado rapazes
Solução
Aqui está o que eu acho que está acontecendo:
1: Um usuário é devolvido ("bob")
2: CF tenta avaliar o usuário [1]. Firstname como um booleano, mas Bob não é um booleano
3: O retorno é definido como falso, mas o erro impede a função de continuar processando (isso é um palpite)
4: O tipo de valor esperado não é retornado ao Flex, então Flex erros
Primeiro, eu testaria a etapa 3 alterando o bloco de captura para
<cfcatch><cfreturn "false"></cfcatch>
Em seguida, em vez de ativar o usuário [1] .FirstName, eu ligaria o user.recordCount.