javascript - 带有 id 的 Extjs store.load 导致 CORS 错误

标签 javascript extjs servicestack extjs4.2

当我使用 Treeview 组件加载商店时

store: 'somestore'

具有以下设置:

Ext.define('App.store.AdminNavigationTree', {
    extend: 'Ext.data.TreeStore',
    model: 'App.model.AdminNavigationTree',
    storeId: 'AdminNavigationTree',
    headers: { 'Content-Type': 'application/json' },
    proxy: {
        type: 'ajax',
        url: settings.ApiUrl + '/View/AdminNavigation/?format=json',
        reader: {
            type: 'json',
            root: 'result',
        }
    },
    folderSort: true
});

数据加载正常。

当尝试使用以下商店调用 store.load 以填充表单时,它没有!

Ext.define('App.store.PromotionCompany', {
    extend: 'Ext.data.Store',
    model: 'App.model.PromotionCompany',
    storeId: 'PromotionCompany',
    headers: { 'Content-Type': 'application/json' },
    proxy: {
        type: 'ajax',
        url: settings.ApiUrl + '/Model/PromotionCompany/?format=json',
        reader: {
            type: 'json',
            root: 'result',
        }
    }
});

我正在为 API 使用 ServiceStack 并且这两个 URL 都设置了 [EnableCors] 并且确实 - 当使用以下内容调用 store.load 时:

store.load({
    params: { id: pcid },
    callback: function (records, options, success) {
        //do something
    }
});

我可以看到请求进入 API 并返回正确的数据!

有没有人知道 ExtJs 到底在做什么?

最佳答案

根据我对上一个 ExtJs + ServiceStack 项目的记忆,TreeStore 和 Store 需要不同的数据结构。

  • 使用 Chrome 开发工具或 Firebug 检查响应对象,可能是解析问题。至少,它会帮助您更接近解决方案。
  • 仔细检查您的 JsonReader 属性(在您的商店中),我被捕获了几次,因为我忘记在其上设置“root”属性

编辑 1:我查看了我的代码,响应是相似的,唯一不同的是包含了附加信息,例如 leaf: true 等)。我也没有注意到您已经在代码示例中设置了根属性。

关于javascript - 带有 id 的 Extjs store.load 导致 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471455/

相关文章:

javascript - 添加和删​​除下拉列表

javascript - 想要在警报框中的jsp页面上显示 Controller 消息

extjs - 存储未被读取或识别

javascript - SDK 2 : Example of a settings dialog

asp.net - 将旧帖子重定向到 ServiceStack API

Servicestack 显示 404 页面 CatchAllHandlers

wsdl - 服务堆栈 WSDL 错误。 Endpoint 与 Windows Store 应用程序不兼容。跳过...

javascript - 为特定类类型的数组创建 typescript 扩展

javascript - 如何将 ViewModel 中的数据发布到 Controller 方法中?

iphone - 在 Xcode/Iphone 中测量 FPS/性能