it-swarm.com.de

Ermitteln Sie HTTP oder HTTPS und erzwingen Sie HTTPS in JavaScript

Gibt es eine Möglichkeit, HTTP oder HTTPS zu erkennen und die Verwendung von HTTPS mit JavaScript zu erzwingen?

Ich habe einige Codes zum Erkennen von HTTP oder HTTPS, kann aber die Verwendung von https: Nicht erzwingen.

Ich verwende die Eigenschaft window.location.protocol, um festzulegen, was für eine Site https: Lautet, und aktualisiere dann die Seite, um hoffentlich eine neue https-URL zu laden, die in den Browser geladen wird.

if (window.location.protocol != "https:") {
   window.location.protocol = "https:";
   window.location.reload();
}
265
Registered User

Versuche dies

if (location.protocol != 'https:')
{
 location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
}
436
Soumya

Einstellung location.protocol navigiert zu einer neuen URL . Keine Notwendigkeit, irgendetwas zu analysieren/zu schneiden.

if (location.protocol !== "https:") {
  location.protocol = "https:";
}

Firefox 49 hat ein Fehler wobei https funktioniert aber https: nicht. Angeblich behoben in Firefox 54 .

47
sam

Es ist keine gute Idee, da Sie den Benutzer nur vorübergehend zu https umleiten und der Browser diese Umleitung nicht speichert.

Sie beschreiben die Aufgabe für den Webserver (Apache, Nginx usw.) http 301, http 302

19
b1_

Wie wäre es damit?

if (window.location.protocol !== 'https:') {
    window.location = 'https://' + window.location.hostname + window.location.pathname + window.location.hash;
}

Idealerweise würden Sie dies jedoch auf der Serverseite tun.

13
keirog
if (location.protocol == 'http:')
  location.href = location.href.replace(/^http:/, 'https:')
12
Steven Penny

Keine Javascript-Methode, um dies zu beantworten, aber wenn Sie CloudFlare verwenden, können Sie Seitenregeln schreiben, die den Benutzer viel schneller zu HTTPS umleiten und es ist kostenlos. So sieht es in den Seitenregeln von CloudFlare aus:

enter image description here

4
Mikeumus

Du kannst tun:

  <script type="text/javascript">        
        if (window.location.protocol != "https:") {
           window.location.protocol = "https";
        }
    </script>
0
M.BRAHAM

Funktionsweise

window.location.protocol === 'http:' && (location.href = location.href.replace(/^http:/, 'https:'));