在我的电子应用程序中,我需要发送一个包含修改后的Referer
标头的请求。最好的方法是什么?
我尝试使用内置的浏览器fetch
api,但是它只是无法设置Referer标头。
const json = await fetch(api_url, {
referrer: referer_url,
headers: {
"Referer": referer_url,
},
mode: "no-cors"
}).then(r => r.json());
Electron v3.0.6
答案 0 :(得分:0)
您需要处理Electron中的所有提取请求。例如:
文件background.js
(用于电子):
const filter = {
urls: ['https://*./*', 'http://*./*'],
};
session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => {
if (details.url.startsWith(process.env.VUE_APP_API_SEFVER)) {
details.requestHeaders['Origin'] = 'my-tools';
} else {
const url = new URL(details.url);
details.requestHeaders['Origin'] = url.origin;
if (!details.url.includes('//localhost')
&& details.requestHeaders['Referer']
&& details.requestHeaders['Referer'].includes('//localhost')) {
details.requestHeaders['Referer'] = details.url;
}
}
callback({ cancel: false, requestHeaders: details.requestHeaders });
});