Ich füge meinen Kopf- und Fußzeilen eine externe CSS-Datei und eine externe JS-Datei hinzu. Beim Laden einer HTTPS-Seite beschweren sich einige Browser, dass ich ungesicherten Inhalt lade.
Gibt es eine einfache Möglichkeit, den Browser dazu zu bringen, den externen Inhalt über HTTPS zu laden, wenn die Seite selbst HTTPS ist?
javascript
html
css
https
Nathan H.
quelle
quelle
https://
Ressourcen, wenn diese verfügbar sind. Sie werden gut in Ihre Seite geladen, unabhängig vom Schemanute & James Westgate haben Recht, wenn sie auf die spätere Antwort eingehen.
Wenn wir uns die verschiedenen externen Javascript-Includes in Industriequalität ansehen, verwenden die erfolgreichen sowohl das Sniffing von document.location.protocol als auch die Injektion von Skriptelementen, um das richtige Protokoll zu verwenden.
Sie könnten also etwas verwenden wie:
<script type="text/javascript"> var protocol = ( ("https:" == document.location.protocol) ? "https" : "http" ); document.write( unescape( "%3Cscript" + " src='" + protocol + "://" + "your.domain.tld" + "/your/script.js" + "'" + " type='text/javascript' + "%3E" + "%3C/script%3E" ) // this HAS to be escaped, otherwise it would // close the actual (not injected) <script> element ); </script>
Gleiches gilt für externe CSS-Includes.
Übrigens: Achten Sie darauf, dass Sie in Ihrem CSS nur den relativen Pfad url () verwenden, falls vorhanden. Andernfalls wird möglicherweise immer noch die Warnung "Mixed Secure and Unsecure" angezeigt.
quelle
Wenn Sie relative Pfade verwenden (und sich der Inhalt in derselben Domäne befindet), sollte der Inhalt das Protokoll verwenden, in dem die Seite angefordert wurde.
Wenn Sie jedoch domänenübergreifend zu einem CDN oder einer Ressourcensite wechseln oder absolute Pfade verwenden müssen, müssen Sie zum Ändern der Links ein serverseitiges Skript verwenden oder immer https: // verwenden
quelle
Im Gegensatz zu der maskierten Antwort (die auch funktioniert) können Sie diesen Teil überspringen und auf die richtige Weise Knoten zu Ihrem Dom-Baum hinzufügen:
<script type="text/javascript" language="javascript"> var fileref=document.createElement('script'); fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", document.location.protocol + '//www.mydomain.com/script.js'); document.getElementsByTagName("head")[0].appendChild(fileref); </script>
Aber der protokollbezogene Pfad wäre der richtige Weg.
quelle