2012-05-09 5 views
0

Phonegap 및 Sencha touch2로 프로그래밍하는 동안 서버에서 데이터를 가져 오는 방법을 실험하고 있습니다.sencha touch 2를 사용하여 xml에서 속성 데이터 가져 오기

Google 날씨 API에서 날씨 데이터를 가져 오려고합니다.

지금 나는 day_of_week 데이터를 보여줄 목록이있는 패널이 있습니다. 그러나 나는 속성으로부터 데이터를 얻는 방법을 찾을 수 없다.

그래서 나는 다음과 같은 코드를 가지고 : 당신이 http://www.google.com/ig/api?weather=zonhoven에서 XML을 보면 당신은 요일은 다음과 같이 표현되는 것을 볼 수 있습니다

Ext.define('WeerBe.view.mainTabs.TestPage', { 
extend : 'Ext.navigation.View', 
xtype : 'testPage2', 

config : { 
    title : 'Test Page2', 
    iconCls : 'info', 

    scrollable : true, 

    items : [{ 
     xtype : 'list', 
     itemTpl: '{day_of_week}', 

     store : { 
      autoLoad: true, 

      fields : ['day_of_week'], 


      proxy : { 
       type : 'ajax', 
       url : 'http://www.google.com/ig/api?weather=zonhoven', 
       reader : { 
        type : 'xml', 
        root : 'weather', 
        record: 'forecast_conditions' 
       } 
      } 
     } 
    }] 
} 
}) 

목록을 예상대로 4 개 레코드를 포함하지만 '아무튼 day_of_week 노드 자체가 비어 있고 데이터가 데이터 속성에 있기 때문에 데이터를 표시합니다.

속성 데이터는 어떻게 가져 옵니까?

답변

0

코드를 실행하고 콘솔 로그를 확인했습니다. you'r는 그래서 Cross-domain cross-origin resource sharing.

의이있는 ajax 요청을하기 때문에

XMLHttpRequest cannot load http://www.google.com/ig/api?weather=zonhoven&_dc=1336560194441&page=1&start=0&limit=25 . Origin http://localhost.com is not allowed by Access-Control-Allow-Origin.

오류는, 'jsonp'

proxy : { 
     type : 'jsonp', 
     url : 'http://www.google.com/ig/api?weather=zonhoven', 
     .... 
     .... 
에 프록시 유형을 변경 : 여기

가 발생되는 오류입니다
+0

이상하게도이 오류가 발생하지 않았으며 지금도 마찬가지입니다. 그러나 아약스를 jsonp로 변경하면 콘솔에 다음과 같은 오류가 발생합니다. 잡히지 않은 SyntaxError : 예기치 않은 토큰 < 아마 json 이겠지만 XML이 아니기 때문일 것입니다. –

+0

그건 중요하지 않습니다. 'jsonp' 요청 만 데이터 교차 도메인에 대한 요청을하기 위해 사용됨 –

+0

은 예상치 못한 토큰을 여전히 해결하지 못합니다.

관련 문제