电子-发送带有修改的Referer标头的GET请求

时间:2018-10-27 02:33:38

标签: node.js xmlhttprequest electron fetch

在我的电子应用程序中,我需要发送一个包含修改后的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

1 个答案:

答案 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 });
  });