由于本人并不满足Bilibili抽奖条件,因此决定为我的工具箱增加一个抽奖功能,开发中发现B站得头像的图片链接并不能正常在我的页面中显示,一番调查后发现,发生这种问题主要原因是referer,浏览器在请求时会默认带上这个字段。而B站得后台对此字段应该有一个白名单,而我本地地址(127.0.0.1)不在这个名单中,所以无法加载该图片。这应对方法也很简单,Electron中是可以修改这个值的,我将referer改成百度(https://www.baidu.com),顺利解决问题,代码如下:
import { app, BrowserWindow, shell, session } from 'electron'
const filter = {
urls: ['*.hdslb.com/*']
}
session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, cb) => {
console.log(details)
details.requestHeaders['referer'] = 'https://www.baidu.com'
let data = { requestHeaders: details.requestHeaders }
cb(data)
})