2010-05-11 5 views
1

Dojo를 사용하고 JAVA 클래스에 대한 AJAX 호출을 작성하고 클라이언트에 대한 경고 상자에 프로그램 출력을 가져 오려고합니다.Dojo JSON 콜백은 항상 오류를 리턴합니다.

  var showResult = function(result){ 
      console.log("Showing Result()"); 
      var store = new dojo.data.ItemFileReadStore({ data: result}); 
      console.dir(store); 

      store.fetch({ onItem: function(data) { alert("Hie"); }, 
          onError: function(error,request){ alert("ERROR");} 
      }); 

     }; 

이것은 내 코드입니다. showResult는 기본적으로 xhr 요청으로부터 콜백 함수입니다. Firebug에 인쇄 된 console.dir (저장소)를 볼 수 있지만 가져 오기 기능은 항상 onError 블록을 반환합니다.

내 저장소 배열의 형식이 {info = "Test Message"}이며 "Test Message"를 검색하고 경고 상자에 표시해야합니다. 어떤 도움이 필요합니까?

답변

0

result이 배열 일 경우 new dojo.data.ItemFileReadStore({data : {items : result}})을 사용하여 저장소를 만들어야합니다. {{정보 : 쿼리 '*'}}

var store = new dojo.data.ItemFileReadStore({data : {items : result}}); 
store.fetch({ 
    onItem : function(item) { 
     alert(store.getValue(item, "info")); 
    }, 
    onError : function(error) { 
     alert("Error!"); 
    } 
}); 
+0

생성자 제안에 감사드립니다. 그것은 완벽하게 보입니다! 그래도 여전히 "오류! 경고 상자가 표시됩니다. 따라서 onError가 실행 중입니다. 어떤 아이디어가 있습니까? – Sunny

+0

onError 처리기를 트리거하는 onItem 처리기에서 JavaScript 오류가 발생했습니다. 간단한 논리를 사용하십시오. onItem 먼저 저장소가 올바르게 생성되었는지 확인한 다음 onItem 핸들러를 디버그하여 오류를 찾습니다. –

0

store.fetch을 (시도 : 예를 들어

, result 다음 코드가 있어야 [{info : "Test Message 1"}, {info : "Test Message 2"}]입니다 onItem : 기능 (데이터) {경고 ("Hie");}, onError : function (오류, 요청) {alert ("ERROR");} }}); 대신 onItem의 작동, 그것은 해볼만 한 가치이다 기능 (항목) {을 console.log (항목)} :

뿐만 아니라 당신은 의 onComplete가 있는지 확인 할 수 있습니다.

console.log에서 오류가 발생하여 문제가 무엇인지 확인할 수 있습니다.

식별자와 레이블 집합을 저장하는 몇 가지 다른 점이 있습니까?

관련 문제