2015-09-01 2 views
0

Использование Ext5 Я пытаюсь отправить запрос jsonp на http://jsonplaceholder.typicode.com/posts.Extjs как разобрать ответ jsonP

Это мой магазин:

Ext.define('MyApp.store.example.Post', 
{ 
     storeId: 'Post', 
     model: 'MyApp.model.example.Post', 
     proxy: 
     { 
       type: 'jsonp', 
       url: 'http://jsonplaceholder.typicode.com/posts', 
       noCache: false, 
       pageParam: false, // to remove param "page" 
       startParam: false, // to remove param "start" 
       limitParam: false, // to remove param "limit" 
     }, 
     autoLoad: true 
}); 

Использование Fiddler Web Debugger я могу проверить запрос HTTP/ответ. Код запроса: http://jsonplaceholder.typicode.com/posts?callback=Ext.data.JsonP.callback1

Вы можете проверить ответ, используя указанный выше URL. Моя проблема заключается в том, как анализировать ответ с сервера.

+2

Не разбирайте json ** p ** - https://en.wikipedia.org/wiki/JSONP ... и если это действительно URL-адрес, который вы получаете, он никогда не будет работать (все после 'callback1' проблема там) –

+0

Хорошо, но если сервер правильно ответит, почему мое приложение Ext не может заполнить мои модели? – user1066183

+0

, так вы говорите, что сервер отвечает неправильно? кажется странным – user1066183

ответ

4

Похоже, что параметр для кэширования _dc вызывает проблему из того, что я могу сказать с вашей конечной точки URL.

Вам не нужно разбирать запрос JsonP, который обрабатывается для вас в методах.

Вот простой пример функционирующего Ext.data.JsonP.request. И fiddle of the working example.

Ext.data.JsonP.request({ 
     'url': 'https://jsonplaceholder.typicode.com/posts', 
     disableCaching : false, 
     success: function (result, request) { 
      //success 
      console.log(result, request); 
     } 
    }); 

Сенча Docs является большим ресурсом, здесь link к документу JSONP о кэшировании. Если вы вернете это свойство до true, вы увидите, что результаты не возвращаются с вашей конечной точки.

+2

Ваше решение работает для меня – user1066183

Смежные вопросы