이 Flex "Hello World"앱이 원격 httpservice 호출의 결과를 픽업하지 않는 이유는 무엇입니까?
-
03-07-2019 - |
문제
내가 갈 때 http : // localhost : 3000/hello/sayhello, 레일 출력 :
hello world!
HTML로.
그러나이 Flex Remote "Hello World"앱을 실행하면 버튼과 텍스트 상자가 표시되지만 Rails URL에 대한 httpservice 호출의 출력을 선택하지 않습니다. 왜 아이디어가 있습니까?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
backgroundGradientColors="[#ffffff, #c0c0c0]"
width="100%"
height="100%">
<mx:HTTPService
id="helloSvc"
url="http://localhost:3000/hello/sayhello"
method="POST" resultFormat="text"/>
<mx:Button label="call hello service"
click="helloSvc.send()"/>
<mx:TextInput text="{helloSvc.lastResult}"/>
</mx:Application>
해결책
코드를 새 플렉스 앱으로 복사하고 붙여 넣어 URL을 수정하여 스크립트 i를 가리 킵니다. 알다 Flex 앱과 함께 작동하며 잘 작동했습니다.
또한 서버 측 스크립트를 변경하여 Newline으로 'Hello World'를 인쇄하여 잘 작동했습니다.
Flex 코드는 일반 텍스트에서 잘 작동하는 것으로 보이지만 데이터 표시와 데이터 자체간에 연결되지 않은 것이 분명히 연결되지 않습니다. 나는 레일을 경험하지 못했지만 서버가 구문 분석 할 수없는 데이터를 출력하고 예외가 삼켜지는 지 궁금합니다.
내 제안은 다음과 같습니다. 'Sayhello'스크립트를 변경하여 단순히 컨텐츠 헤더와 'Hello World'를 인쇄합니다. 브라우저에서 출력 한 다음 Flex 앱에서도 작동하는지 확인하십시오. 그렇다면 Rails 앱은 단순히 텍스트 입력으로 설정하는 대신 구문 분석 해야하는 컨텐츠를 출력 할 수 있습니다. 그렇지 않은 경우 더 많은 디버깅을해야합니다.
BTW, 나는 일반 텍스트 출력과 XML 출력으로 이것을 시도했습니다. 두 시도 모두에서 텍스트 입력 필드에서 내용을 볼 수있었습니다.
다른 팁
귀하의 서비스가 답장 할 XML을 볼 수 없으므로 긍정적이지는 않지만 아마도 두 가지 중 하나라고 생각합니다.
1) 귀하는 귀하의 서비스 요청을 서비스에 포맷 할 요소가 없습니다. 템플릿을 확인하십시오 ...Flex 3 도움
이로 인해 요청이 제대로 만들어지지 않거나 서비스가 요청에 따라 질식시키고 결과를 반환하지 않을 수 있습니다. 요청 처리 방법을 확인하려면 서비스를 디버깅해야합니다.
2) 서비스가 네임 스페이스로 XML 결과를 반환합니다. 이 경우 체크 아웃해야합니다. 또 다른 Flex 3 도움 XML을 처리하는 방법은 E4X 형식으로 나타납니다.