我正在编写一个用于Atom Electron的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()
按照我提供的头来发送它们呢?
3条答案
按热度按时间yptwkmov1#
当前提取将
toLowercase()
所有头文件。(这里有一些关于可选禁用https://github.com/whatwg/fetch/issues/304的讨论)。现在,您可能需要使用带有
header
选项的http://api.jquery.com/jquery.ajax/。pxiryf3j2#
火狐v110, chrome v108:
使用构造函数
new Headers()
创建头可以降低大小写,但是提供请求头作为普通对象会发送正确的大写Athorization: Bearer
所以与其说
我这样做:
未在其他环境中测试
ih99xse13#
使用获取我自己和做类似的事情,我们做如下...
Take是伪代码,因为我们传入了一些函数参数,这些参数是在模板文本中计算的。