直接给
标签配置请求头在标准 HTML 中是无法实现的。不过别担心,这个问题有成熟的解决方案。核心思路都是“曲线救国”:先用能携带请求头的方式(如 fetch 或 XMLHttpRequest)获取图片数据,再将数据转换成 URL 填入 src。下面为你详细拆解几种主流方案:
图片
1 2 3 4 5 6 7 8 9 10 11 12 13
| const res = await fetch(url, { headers: { Authorization: 'Bearer ' + token } })
const blob = await res.blob() img.src = URL.createObjectURL(blob) img.onload = () => { URL.revokeObjectURL(blob) }
|
PDF 返回ReadableStream
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| const res = await fetch(url, { headers: { Authorization: 'Bearer ' + token } })
const stream = res.body const reader = stream.getReader() const chunks = []
while (true) { const { done, value } = await reader.read() if (done) break chunks.push(value) }
const blob = new Blob(chunks, { type: 'application/pdf' }) iframe.src = URL.createObjectURL(blob)
|