2012-12-09 3 views
3

저는 Sencha 뷰에서 아무 것도 얻지 못하는 이유를 이해하기 위해 애 쓰고 있습니다. 나는 json이 서버와 Sencha 프록시 사이에서 전송되는 문제가 있다고 생각한다. 나는 Sencha에서 노드와 익스프레스와 프록시 리더로 코딩 된 서버를 가지고있다. 그러나 Sencha는 데이터를 읽을 수 없습니다.JSON 응답 : 노드 서버와 Sencha

서버 측 :

app.get('/weather/fulljson',function(req, res) { 
    var obj = {data: [{ from_user: 'world', data: 'inter' }, { from_user: 'world2', data: 'interw' }, { from_user: 'world3', data: 'interw' }]}; 

    jsonP = false; 
    var cb = req.query.callback; 
    console.log(cb); 
    if (cb != null) { 
     jsonP = true; 
     res.writeHead(200, { 
      'Content-Type': 'text/javascript', 
      'connection' : 'close' 
     }); 
    } else { 
     res.writeHead(200, {'Content-Type': "application/x-json"}); 
    } 
if (jsonP) { 
    res.end(cb + "(" + JSON.stringify(obj) + ");"); 
} 
else { res.end(JSON.stringify(obj)); 
} 
)}; 

}); 

센차보기 : 크롬에서

Ext.define('Epic.view.Weather', { 
    xtype: 'graph', 
    extend: 'Ext.DataView', 
    //requires: ['Epic.store.SWeather'], 
    requires: ['Epic.model.MWeather', 'Ext.data.proxy.JsonP'], 
    config: { 
     store: { 
     autoLoad: true, 
     fields: ['from_user', 'data'], 

     proxy: { 
      type: 'jsonp', 
      url: 'http://localhost:3000/weather/fulljson', 
      reader: { 
       type: 'json', 
       rootProperty: 'data' 
      } 
     } 
    } 
    }, 

      itemTpl: '{from_user}' 
}); 

응답 :

Ext.data.JsonP.callback1({"data":[{"from_user":"world","data":"inter"},{"from_user":"world2","data":"interw"},{"from_user":"world3","data":"interw"}]}); 

그러나 아무것도 뷰에 나타납니다.

+0

또한 JSONP 유형이 필요합니까? 당신은 십자가 sripting을 사용할 것인가? 귀하의 회신에 감사드립니다. – Psycho

답변

0

로드 한 후 상점을 확인 했습니까? 전송하는 데이터가 포함되어 있습니까? 그렇다면 - 귀하의 견해에 뭔가 잘못된 것입니다. 디버거 도구를 사용하여 구성 요소와 체크 스토어를 얻을 수 있습니다. 또한 모델 Epic.model.MWeather를 (를) 보여줄 수 있습니까? 사실 모델이 있다면 상점에 필드를 추가 할 필요가 없습니다.

+0

. DataView를 사용하지 않고 저장소에 데이터가 있는지 확인하려면 어떻게해야합니까? 귀하의 회신에 감사드립니다. – Fatfly

+0

. 나는 그 순간 모델을 사용하지 않고있다. 내가 그것을 제거하면 아무것도 바뀌지 않습니다. 저장소를 확인하기 위해 "ressources"탭과 로컬 저장소에 대해 이야기하고 있습니까? 그것이 작동하면 어떤 소리가 나지? – Fatfly

+0

DOM에서 가져올 수있는 Ext.getCmp ('id') 및 ID를 사용할 수 있습니다. – Psycho