2016-10-02 2 views
0

я следующий магазин, который предполагает, чтобы загрузить данные через JSONP прокси:ExtJS: Получение ответа от прокси-сервера JSONP?

Ext.define('Forecaster.store.WeatherDay', { 
    extend : 'Ext.data.Store', 
    model : 'Forecaster.model.WeatherDay', 
    autoLoad : true, 
    proxy : { 
     type : 'jsonp', 
     method : 'GET', 
     url : 'http://api.wunderground.com/api/[myAPIKey]/forecast10day/q/11432.json', 
     root: 'forecast', 
     dataType : 'json', 
     success: function (result, request) { 
      //success 
      console.log("Sucess!"); 
      console.log(result, request); 
     } 
    } 
}); 

На вкладке сети в браузере, я вижу, что ответ возвращается (усеченный):

Ext.data.JsonP.callback1(
{ 
    "response": { 
    "version":"0.1", 
    "termsofService":"http://www.wunderground.com/weather/api/d/terms.html", 
    "features": { 
    "forecast10day": 1 
    } 
    } 
     , 
    "forecast":{ 
     "txt_forecast": { 
     "date":"5:18 PM EDT", 
     "forecastday": [ 
     { 
     "period":0, 
     "icon":"cloudy", 
     "icon_url":"http://icons.wxug.com/i/c/k/cloudy.gif", 
     ...more of the response... 

Но вышеуказанная функция обратного вызова, похоже, не выполняется. Что мне нужно сделать, чтобы получить ответ JSON?

ответ

2

Нет конфигурации «success» на прокси-сервере (см. http://docs.sencha.com/extjs/6.0.2/classic/Ext.data.proxy.JsonP.html).

После того, как вы определили свой класс хранилища, вы должны создать его, а затем вызвать функцию загрузки.

var store = Ext.create('Forecaster.store.WeatherDay'); 
store.load({ 
     success: function (result, request) { 
      //success 
      console.log("Sucess!"); 
      console.log(result, request); 
     } 
}); 
Смежные вопросы