如何解决pdfjs中getDocument()请求自定义头添加后不生效问题
解决PDF.js getDocument自定义请求头不生效的问题
首先,我一眼就看到你代码里有个容易忽略的拼写错误——你定义的参数变量是parameter,但传给getDocument的却是parameters,这直接导致你的httpHeaders配置根本没被传入方法里!先把这个小问题修正,正确的代码应该是这样:
var parameters = { url: this.url, httpHeaders: { Authorization: `password` }, withCredentials: true }; var loadingTask = pdfjsLib.getDocument(parameters);
如果修正后还是没生效,你可以按下面的步骤逐一排查:
- 确认PDF.js版本兼容性:不同版本的PDF.js可能对参数名有要求,比如部分旧版本可能用
headers而不是httpHeaders。你可以对照你使用的PDF.js版本的官方文档,确认请求头参数的正确命名。 - 检查跨域服务器配置:如果你的PDF资源在不同域名下,服务器必须在响应头中配置
Access-Control-Allow-Headers: Authorization,否则浏览器会因为同源策略限制,不会发送自定义的Authorization头。 - 验证实际请求头:打开Chrome开发者工具(按F12),切换到Network面板,找到加载PDF的请求,查看Request Headers区域。如果Authorization字段没有出现,说明配置仍有问题;如果已经存在,那问题可能出在服务器端没有正确处理这个请求头。
内容的提问来源于stack exchange,提问作者Raul_43
相关产品推荐
相关产品推荐

