2010-03-05 1 views
4

제 관석 팀이 Qooxdoo를 프로젝트의 프런트 엔드로 사용하기로 결정했습니다. 우리는 NOX를 사용하는 OpenFlow 컨트롤러 용 앱을 개발 중이므로 NOX 웹 서비스 프레임 워크를 사용하고 있습니다. 서비스에서 데이터를 가져 오는 데 문제가 있습니다. Firefox를 사용하여 URL로 이동하면 올바른 데이터가 나타나기 때문에 서비스가 실행 중임을 알 수 있습니다.문제 Qooxdoo를 사용하여 웹 서비스에서 데이터 가져 오기

var req = new qx.io.remote.Request("http://localhost/ws.v1/hello/world", 
            "GET", "text/plain"); 

req.addListener("complete", function(e) { 
    this.debug(e.getContent()); 
}); 

var get = new qx.ui.form.Button("get"); 
get.addListener("execute", function() { 
    alert("The button has been pressed"); 
    req.send(); 
}, this); 
form.addButton(get); 

내가 경고를 클릭 한 후 나는이 메시지를 얻을 불을 지르고 콘솔에서 :

008402 qx.io.remote.Exchange: Unknown status code: 0 (4) 

그리고 내가 다시 가져 오기 버튼을 누르면 내가이 오류가 여기 내 코드의 관련 부분입니다 :

027033 qx.io.remote.transport.XmlHttp[56]: Failed with exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: file:///home/user/qooxdoo-1.0-sdk/framework/source/class/qx/io/remote/transport/XmlHttp.js :: anonymous :: line 279" data: no] 

또한 그러나 "에 의해, dataChange"이벤트 나는 결코 해고없는 "tweetsChanged"이벤트의 장소에서 설정, 트위터 클라이언트 튜토리얼을 살펴 보았다. 도움이된다면 고맙습니다.

답변

4

이 소리는 상호 도메인 요청 문제와 같습니다. qx.io.remote.Request은 브라우저 제한으로 인해 모든 경우에 작동하지 않을 수있는 데이터를 전송하기 위해 XHR을 사용합니다. 요청시 crossDomain 플래그를 true으로 전환하면 XHR에서 동적으로 삽입 된 script 태그에 도메인 간 제한 (다른 제한 사항)이 적용되지 않습니다.

아마도 문제가 해결됩니다. 또한 크로스 도메인 요청에 대한 몇 가지 추가 정보를 얻을 수있는 원격 패키지의 문서를 살펴 수 있습니다 는 http://demo.qooxdoo.org/current/apiviewer/#qx.io.remote

또한 두 번 요청 객체를 사용하지 않도록주의해야합니다. 한 번만 작동합니다.

+0

감사합니다. 크로스 도메인 문제 였기 때문에 Qooxdoo 앱을 우리 NOX 앱에 제공하고 캐시 방지 메커니즘을 돌려서 요청에 첨부 된 쿼리 문자열이 없도록해야했습니다. (나는 서버의 끝에서 문제를 해결하려고 노력할 수 있다고 생각하지만, 나는 그 브리지를 구울 것이다.) 어쨌든, 이제 작동 중이다! – Andy