2015-09-01 75 views
0

使用Ext5我試圖發送一個jsonp請求到http://jsonplaceholder.typicode.com/postsExtjs如何解析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 
}); 

使用招Web調試我可以檢查HTTP請求/響應。 URL請求是: 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