[Javascript] HTTP या HTTPS का पता लगाएं फिर जावास्क्रिप्ट में HTTPS को मजबूर करें


Answers

Location.protocol को एक नए यूआरएल पर नेविगेट करना । कुछ भी पार्स / टुकड़ा करने की जरूरत नहीं है।

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

फ़ायरफ़ॉक्स 49 में एक bug जहां https काम करता है लेकिन https: नहीं करता है। फ़ायरफ़ॉक्स 54 में तय किया गया कहा।

Question

क्या HTTP या HTTPS का पता लगाने का कोई तरीका है और फिर जावास्क्रिप्ट के साथ HTTPS का उपयोग करने के लिए मजबूर है?

मेरे पास HTTP या HTTPS का पता लगाने के लिए कुछ कोड हैं लेकिन मैं इसे https: का उपयोग करने के लिए मजबूर नहीं कर सकता।

मैं window.location.protocol प्रॉपर्टी का उपयोग कर रहा हूं जो साइट को https: पर सेट करने के लिए सेट कर रहा है https: फिर ब्राउज़र में लोड किए गए एक नए https'ed यूआरएल को पुनः लोड करने के लिए पृष्ठ को रीफ्रेश करें।

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



इसका जवाब देने के लिए जावास्क्रिप्ट तरीका नहीं है, लेकिन यदि आप क्लाउडफ्लारे का उपयोग करते हैं तो आप पेज नियम लिख सकते हैं जो उपयोगकर्ता को HTTPS पर बहुत तेज़ी से रीडायरेक्ट करते हैं और यह मुफ़्त है। क्लाउडफ्लेयर के पेज नियमों में ऐसा लगता है:




इस बारे में कैसा है?

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

आदर्श रूप से आप सर्वर पक्ष पर ऐसा करेंगे, हालांकि।




<script type="text/javascript">
        function showProtocall() {

            if (window.location.protocol != "https") {
                window.location = "https://" + window.location.href.substring(window.location.protocol.length, window.location.href.length);
                window.location.reload();
            }
        }
        showProtocall();
</script>



Links