我有一个使用 https 的 NodeJS 代码模块为:https.request(options, (res) => {......在哪里 options是一个像
const options = {
hostname: SERVICE_HOSTNAME,
path: BASE_PATH,
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
ApplicationId,
Authorization
}
};
当我添加
Accept 时,我的问题就开始了标题。我收到一个错误:
TypeError [ERR_INVALID_HTTP_TOKEN]: Header name must be a valid HTTP token ["Accept"]
at ClientRequest.setHeader (_http_outgoing.js:472:3)
at new ClientRequest (_http_client.js:203:14)
at Object.request (https.js:289:10)
如何
Accept header 无效?
请您参考如下方法:
现在这很疯狂,但是您的“接受”字符串中有一个额外的字符。
如果你跑
console.log('Accept'.charCodeAt(6)) // prints 8203
(您必须使用问题中的“接受”副本运行它,我假设它是从其他地方复制粘贴的)
Unicode 8203 是 zero width space ,因此我们人类看不到它:)
顺便说一句,最初我通过复制粘贴到 Node REPL 中发现了这个角色,并在收到错误后注意到控制台输出中的“正方形”。
然后,我尝试将您的代码复制粘贴到我的 IntelliJ 编辑器中,并惊喜地看到此警告:




