Error 1003: A valid Host header must be supplied to reach the desired website

I am trying to access a website (www.bet365.com.au) with fetch in a worker, however I am getting this error, which is supposed to appear when I try to access an IP directly, which is not the case:

With other sites it works correctly.

Here is the code I use:

addEventListener('fetch', event => {
  event.respondWith(forwardReq(event.request))
})

async function forwardReq(request) {
  const init = {
    body: request.body,
    headers: request.headers,
    method: request.method,
  }
  let response = await fetch ('https://www.bet365.com.au/defaultapi/sports-configuration', init);
  return new Response(response.body, {
    status: response.status,
    statusText: response.statusText
  })
}

What am I forgetting?

Edit: when I test in the development environment I get a 502 error, “Error communicating with origin server localhost”. It looks like it points to localhost instead of the site:

Also, if I test just the domain without any path, it works, but the rest of the urls don’t work. For example, “https://www.bet365.com.au/defaultapi/sports-configuration” does not work, but “https://www.bet365.com.au” works.

I think for security reasons you can only fetch from domains in your own account which means you have to add an A record with their IP, but that defeats the whole purpose of using Cloudflare.

Loads for me, are you sure your not access a cloudflare IP by mistake?

I’m sure. When I test here it also fails, but with another error, it seems to point to localhost instead of the site:

With other sites there are no problems:

Then why can I use it with other sites?

I am doing this: How to bypass CloudFlare bot protection ? | by jychp | Mar, 2021 | Medium

This topic was automatically closed after 29 days. New replies are no longer allowed.