【问题标题】:Ext.Ajax.defaultHeaders ignored when JsonStore.autoLoad = true当 JsonStore.autoLoad = true 时忽略 Ext.Ajax.defaultHeaders
【发布时间】:2010-11-29 17:56:20
【问题描述】:

我正在为一个个人项目构建一个 RESTful API,并且管理区域使用 Ext。由于 API 需要通过自定义标头“X-API-Auth”来回传递令牌,因此我需要能够将其添加到 Ext 发出的每个 Ajax 请求中。

例如,在用户管理区,我有一个GridPanel,使用一个JsonStore,显示一个注册用户列表。 'autoLoad' 属性设置为 TRUE。这样,当您第一次访问屏幕时,GridPanel 会自动填充。

在呈现任何内容之前,我包含以下标题:

Ext.Ajax.defaultHeaders = {
    'X-API-Auth' : __API_KEY,
    'Accept' : 'application/json'
};

其中 '__API_KEY' 是令牌。

现在,我的理解是这些自定义标头现在应该随每个 Ajax 调用一起发送。当我第一次访问成员列表页面时,我收到了从 API 抛出的 403 Forbidden 响应。这是因为 GridPanel 进行的初始 Ajax 调用未发送所需的标头。 API 运行正常,因为没有标头,它无法对请求进行身份验证。

现在,如果我单击包含的与 GridPanel 的 JsonStore 关联的 PagingToolbar 组件中的“重新加载”按钮,它会发送标题。对手动调用的成员列表端点的所有 Ajax 调用都会产生所需的结果。

商店上的“autoLoad”不尊重“defaultHeaders”属性是否有原因?如果有人能对此有所了解,将不胜感激。我也在 Sencha 论坛上问过这个问题,似乎没有人回答。

谢谢!

【问题讨论】:

    标签: ajax extjs restful-authentication


    【解决方案1】:

    好吧,所有的写作都是为了不。我弄乱了操作顺序。所有这些 JavaScript 文件都是由 Ext Designer 创建的。我以为我将'defaultHeaders'属性放在执行路径的顶部,但事实证明我错了。

    全部修复。

    我现在要去割伤自己。

    /永远孤独

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 2020-04-18
      • 1970-01-01
      • 2014-11-25
      • 2012-09-20
      相关资源
      最近更新 更多