node.js - 电子 - 发送带有修改的Referer标头的GET请求
问题描述
在我的电子应用程序中,我需要发送一个包含修改后的Referer
标头的请求。做这个的最好方式是什么?
我尝试使用内置浏览器fetch
api,但它只是无法设置 Referer 标头。
const json = await fetch(api_url, {
referrer: referer_url,
headers: {
"Referer": referer_url,
},
mode: "no-cors"
}).then(r => r.json());
电子 v3.0.6
解决方案
您需要处理 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 });
});
推荐阅读
- indexing - Julia 和 dbscan 聚类:如何从结果结构中提取元素?
- python - python如何实现字符串的索引?
- flutter - 颤动:从其兄弟中截取小部件的屏幕截图
- arrays - 如果它不为零,则从数组中打印元素
- decision-tree - catboost eval_metrics 返回值
- c# - 在 ComboBoxColumn 中获取 ComboBox 的名称
- angular - 使用 BehaviorSubject 从一个组件向另一个组件发送数据
- css - 改变IE输入框的宽度
- json - 如何在 WSO2 Integration Studio ESB 应用程序中传递不记名令牌,以便能够在 WSO2 API Publisher 中调用 API?
- r - 不完整的最后一行发现问题