【发布时间】: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