Extjs如何解析jsonP响应

时间:2015-09-01 12:50:10

标签: javascript extjs extjs5

使用Ext5我正在尝试向http://jsonplaceholder.typicode.com/posts发送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

您可以使用上述网址检查回复。 我的问题是如何解析服务器的响应。

1 个答案:

答案 0 :(得分: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);
        }
    });

Sencha docs是一个很好的资源,这里是关于缓存的JsonP文档的link。如果您将此属性更改回true,您将看到没有从您的终端返回任何结果。