arxenix
arxenix

Reputation: 180

electron - sending GET request with modified Referer header

In my electron application, I need to send a request which includes a modified Referer header. What is the best way to do this?

I attempted to use the builtin browser fetch api, but it just fails to set the Referer header.

const json = await fetch(api_url, {
  referrer: referer_url,
  headers: {
    "Referer": referer_url,
  },
  mode: "no-cors"
}).then(r => r.json());

Electron v3.0.6

Upvotes: 3

Views: 2391

Answers (1)

You need to handle all fetch requests in Electron. For example:

File background.js (for electron):

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

Upvotes: 1

Related Questions