Quiero tener una verificación en mi javascript si la página que se carga está en mi máquina local.
La razón por la que quiero hacer eso es que cuando desarrollo me gusta asegurarme de que tanto la validación del lado del servidor (C #) esté funcionando correctamente. Así que me gusta ver que aparecen los errores del lado del cliente y del lado del servidor.
Entonces, mientras estoy probando, tengo una bandera en mi jquery validate que siempre deja pasar datos no válidos. De esta manera veo los errores del lado del cliente y del servidor de una sola vez.
Sin embargo, ahora tengo que ir y cambiar manualmente de un lado a otro al pasar del desarrollo a la producción.
javascript
jquery
localhost
chobo2
fuente
fuente
Respuestas:
La
location.hostname
variable le da el host actual. Eso debería ser suficiente para que pueda determinar en qué entorno se encuentra.fuente
si inicia html estático en el navegador, por ejemplo, desde una ubicación como la
file:///C:/Documents and Settings/Administrator/Desktop/
detección de "localhost" no funcionará.location.hostname
devolverá una cadena vacía. entoncesfuente
Todavía no es una trampa para todos, pero podría ser una pequeña mejora. Ahora puede crear una matriz de dominios y usar .includes
fuente
Así es como se verifica en React, registrar service worker , una buena manera de verificar si está en localhost al verificar el nombre de host, incluidos localhost e IPv6 , y comenzar con 127 :
fuente
Una manera fácil de hacer esto sería simplemente comparar el nombre de host con el localhost o comparar su nombre de dominio personalizado con una subcadena, en este caso, URL ".local", como http: //testsite.local
fuente
Forma más corta usando la misma mecánica que otros scripts:
fuente
Este también cubre algunos casos comunes en los que las IP de la red local comienzan con
10.0.
o192.168.
o Bonjour como dominio que termina en.local
:fuente
Podría detectar en uno de sus códigos detrás de las páginas con c #, así:
O si desea hacerlo desde el script del cliente, puede verificar el valor de window.location.host.
Espero que esto ayude.
fuente
fuente
Las respuestas anteriores resuelven principalmente el problema, pero ...
( validación fe, validación, no validación )
Una solución es configurar el hash de ubicación y verificarlo.
http://myname.foo.com/form.html#devValidation
Puede agregar opciones ilimitadas con un interruptor
fuente
La expresión regular es más lenta *, pero corta y ordenada. Además, nadie aquí verifica IPv6 localhost (:: 1)
Comprueba el host local general, el dominio .local y el archivo: (nombre de host vacío).
*) En Chrome, el rendimiento de
[].includes(...)
es el mejor (42 ms), seguido de un bucle simple (for, while) con verificación de elementos de matriz (119 ms), luego[].indexOf(...) > -1
(289 ms) y finalmente la expresión regular (566 ms). Pero esas medidas son de alguna manera relativas, porque los diferentes navegadores se optimizan de manera diferente. En FF 52 ESRincludes
yindexOf
tienen resultados similares, la expresión regular es 2 × más lenta y el bucle 6 × más lento.fuente
Según los comentarios anteriores, la siguiente expresión regular me ha ayudado a verificar si la URL es 'localhost', cualquier dirección IP IPv4 o IPv6.
fuente