fetch()发送小写标题键
fetch() sends lower case header keys
我正在编写一个用于AtomElectron的HTTP API库。它基于fetch
。服务器超出了我的控制范围,但它是用PHP编写的,我可以看到它以区分大小写的方式检查标头。
我的代码类似于:
const headers = new Headers();
headers.append('Authorization', `Bearer ${key}`);
const init = {
method: 'GET',
headers: headers
}
const req = new Request(baseUrl + '/items?format=json');
return fetch(req, init);
请求被拒绝,并出现403 FORBIDDEN
错误。当我在Electron Newtork面板中查看请求时,请求标头已存在,但Authorization
已变为authorization
。
我知道fetch()
只是遵循HTTP标准,但有没有一种简单的方法可以让fetch()
在我提供标头时发送它们?
当前获取将toLowercase()
所有标头。(这里有一些讨论https://github.com/whatwg/fetch/issues/304关于可选禁用)。
现在您可能需要使用http://api.jquery.com/jquery.ajax/使用header
选项。
Firefox v110,Chromium v108:
使用构造函数创建标头new Headers()
降低了这种情况,但提供请求头作为普通对象发送正确的大写Athorization: Bearer
所以不是
fetch('api/end-point', {
headers: new Headers(...)
})
我这样做:
fetch('api/end-point', {
headers: {
...{other headers},
Authorization: `Bearer ${token}`,
}
})
未在其他环境中测试
使用fetch我自己并做类似的事情,我们做如下。。。
const GLOBALS = require('./Globals');
const HEADERS = {
'Accept': 'application/json',
'Content-Type': 'application/json'
};
const resourceURL = '/some/endpoint'
const body = '';
var request = new Request(`${GLOBALS.API_ENDPOINT}${resourceURL}`, {
method: 'GET',
headers: new Headers(Object.assign(HEADERS, {'Authorization': `JWT ${token}`})),
body: body ? JSON.stringify(body) : null
});
return fetch(request)
.then(res => consume)
Take是伪伪代码,因为我们传入了一些函数参数,这些参数在模板文本中进行了计算。
相关文章:
- CSS-如何定位内容数据标题
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 在PHP中使用javascript更改页面标题'if'
- Brightcove获取/显示HTML中的当前视频标题和描述
- React组件-设置页面标题
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- jQuery动态更改标题
- HighCharts长标题文本在某些元素上重叠
- 将行添加到具有固定标题的HTML表中
- CKEditor v4:自制插件中对话框的动态标题
- 如何在自动完成时设置属性标题
- 单元格的工具提示或标题不显示超过2000个字符
- 如何从相应的控制器动态更新标题和描述
- 将超链接添加到“;标题“;标记文本
- IE11中的第二个调用取消了第一个Fetch API调用
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- FullCalendar:事件发生时阻止重叠.标题是一样的
- jQuery动画标题滚动
- 如何动态更改dataTablejQuery插件的列标题
- fetch()发送小写标题键