There are several questions that relate to this, but they're either very specific, inconclusive or outdated:
Is it possible to make a cross domain request from https to http in IE?
Can IE8 post cross-domain requests from HTTP to HTTPS?
Cross domain request from HTTP to HTTPS aborts immediately
And a few others.
As of now, is it at all possible to make any (GET, PUT, POST...) HTTP request, within JavaScript, to a server that does not have a valid SSL certificate, in a page served from a HTTPS server? Without, of course, asking the user to trust a self-signed cert or disable protections.
I've tried fetch
and XMLHttpRequest
requests, but they either get blocked by the browser because of CORS or generic "TypeError: NetworkError".
My specific predicament is that I have a home server accessible through a dynamic DNS provider (free tier). I cannot easily obtain an SSL certificate because my ISP blocks HTTP requests to port 80, which makes Let's Encrypt HTTP-01 challenge basically impossible.