Ich möchte in meinem Javascript überprüfen, ob sich die geladene Seite auf meinem lokalen Computer befindet.
Der Grund, warum ich das tun möchte, ist, dass ich bei der Entwicklung sicherstellen möchte, dass meine serverseitige (C #) Validierung ordnungsgemäß funktioniert. Daher möchte ich sehen, dass sowohl clientseitige als auch serverseitige Fehler angezeigt werden.
Während ich teste, habe ich ein Flag in meinem jquery-Validierungsmaterial, das nur immer ungültige Daten durchlässt. Auf diese Weise sehe ich die clientseitigen und Serverfehler auf einmal.
Im Moment muss ich jedoch manuell hin und her wechseln, wenn ich von der Entwicklung zur Produktion gehe.
javascript
jquery
localhost
chobo2
quelle
quelle
Antworten:
Die
location.hostname
Variable gibt Ihnen den aktuellen Host. Das sollte ausreichen, um festzustellen, in welcher Umgebung Sie sich befinden.quelle
Wenn statisches HTML im Browser gestartet wird, z. B. von einem Ort wie der
file:///C:/Documents and Settings/Administrator/Desktop/
Erkennung von "localhost", funktioniert dies nicht.location.hostname
gibt eine leere Zeichenfolge zurück. soquelle
Immer noch kein Haken, aber es könnte eine kleine Verbesserung sein. Sie können jetzt ein Array von Domänen erstellen und .includes verwenden
quelle
Auf diese Weise wird es in React überprüft , Service Worker registrieren und überprüft, ob Sie sich auf localhost befinden, indem Sie den Hostnamen, einschließlich localhost und IPv6 , überprüfen und mit 127 beginnen :
quelle
Eine einfache Möglichkeit, dies zu tun, besteht darin, den Hostnamen anhand von localhost oder Ihren benutzerdefinierten Domänennamen anhand eines Teilstrings zu überprüfen, in diesem Fall ".local" -URLs wie http: //testsite.local
quelle
Kürzeste Form mit derselben Mechanik wie andere Skripte:
quelle
Dieser behandelt auch einige häufige Fälle, in denen lokale Netzwerk-IPs mit
10.0.
oder192.168.
oder Bonjour-ähnlichen Domains beginnen, die auf enden.local
:quelle
Sie können in einem Ihrer Codes hinter Seiten mit c # Folgendes erkennen:
Wenn Sie dies über das Client-Skript tun möchten, können Sie den Wert von window.location.host überprüfen.
Hoffe das hilft.
quelle
quelle
Die obigen Antworten lösen meistens das Problem, aber ...
(z . B. Validierung, Validierung, keine Validierung ) ?
Eine Lösung besteht darin, den Standort-Hash festzulegen und zu überprüfen.
http://myname.foo.com/form.html#devValidation
Sie können mit einem Schalter unbegrenzte Optionen hinzufügen
quelle
Regulärer Ausdruck ist langsamer *, aber kurz und ordentlich. Außerdem sucht hier niemand nach IPv6 localhost (:: 1)
Es wird nach allgemeinem localhost, lokaler Domäne und Datei gesucht: (leerer Hostname).
*) In Chrome ist die Leistung von
[].includes(...)
am besten (42 ms), gefolgt von einer einfachen Schleife (für, während) mit Überprüfung der Array-Elemente (119 ms), dann[].indexOf(...) > -1
(289 ms) und schließlich dem regulären Ausdruck (566 ms). Diese Messungen sind jedoch irgendwie relativ, da verschiedene Browser unterschiedlich optimiert sind. In FF 52 ESRincludes
undindexOf
mit ähnlichen Ergebnissen ist der reguläre Ausdruck 2 × langsamer und die Schleife 6 × langsamer.quelle
Basierend auf den obigen Kommentaren hat mir der folgende reguläre Ausdruck geholfen zu überprüfen, ob die URL 'localhost' ist, eine IP-Adresse IPv4 oder IPv6.
quelle