Extjs如何解析jsonP响应

Extjs how to parse jsonP response

我正在尝试使用 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 调试器我可以检查 http request/response。 url 请求是: http://jsonplaceholder.typicode.com/posts?callback=Ext.data.JsonP.callback1

您可以使用上述 url 检查响应。 我的问题是如何解析来自服务器的响应。

根据我从您的 url 端点可以看出的情况,似乎缓存的 _dc 参数导致了问题。

您不需要解析在方法中为您处理的 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 文档是一个很好的资源,这里是关于缓存的 JsonP 文档的 link。如果将此 属性 变回 true,您将看到端点未返回任何结果。