最近在做一个electron项目时,需要在node环境使用axios请求,我试图向API发出请求,但我得到了这个错误:
AxiosError: Parse Error: Invalid header value char
问题在于API返回的响应头中的值包含不允许的字符。
Node.js的HTTP解析器比Web浏览器使用的解析器更严格,这可以防止抓取服务器不符合HTTP规范的网站,无论是意外还是由于一些反抓取保护,导致例如invalid header value char
错误。
解决方案是在请求头使用insecureHTTPParser
选项:
axios.get(url, { insecureHTTPParser: true }).then((response) => { console.log(response.data) })
insecureHTTPParser
选项强制Axios使用Node.js HTTP解析器,它比默认解析器不那么严格。不推荐使用此选项,但当您需要向不遵循HTTP规范的API发出请求时,此选项非常有用。但是,它也会使您的应用程序面临一些安全漏洞,尽管风险应该可以忽略不计,因为这些漏洞主要与服务器应用程序有关,而不是客户端。
感谢您的阅读!
标签:node,解析器,axios,HTTP,value,char,header From: https://www.cnblogs.com/Esai-Z/p/18153215