secure origins only google example are allowed html5 google-chrome geolocation file-uri

html5 - origins - javascript google maps geolocation



HTML 5 Indicación de ubicación geográfica en Chrome (8)

Empezando a entrar en HTML 5 y probando la ubicación geográfica ... me gusta hasta ahora. Sin embargo, estoy teniendo un pequeño bache de velocidad ... cuando trato de obtener mi ubicación geográfica, Chrome bloquea automáticamente que la página no tenga mi ubicación. Esto no sucede en otros sitios, como el siguiente:

http://html5demos.com/geo

Los guiones que estoy usando:

<script type="text/javascript" JavaScript" SRC="geo.js"></script> <script type="text/javascript" JavaScript" SRC="Utility.js"></script> <script type="text/javascript" JavaScript" SRC="jquery.js"></script> <script type="text/javascript" JavaScript" SRC="modernizr.js"></script> function get_location() { if (geo_position_js.init()) { geo_position_js.getCurrentPosition(show_map, handle_error); } } function show_map(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; alert("lat:" + latitude + " long:" + longitude); } function handle_error(err) { alert(err.code); if (err.code == 1) { // user said no! } } if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(show_map, handle_error); } else { error(''not supported''); }

Estoy probando esto desde un directorio local en mi máquina, así que no hay realmente un "dominio" como "http://whatever.com/mytestpage.html". ¿Es por eso que no me preguntan? Si es así, ¿es posible forzar a la nave de búsqueda a solicitar permiso para obtener la ubicación geográfica del usuario y es posible en mi escenario?



Como ya se mencionó en la respuesta de robertc, Chrome bloquea ciertas funciones, como la ubicación geográfica con archivos locales. Una alternativa más fácil a la configuración de un servidor web propio sería simplemente iniciar Chrome con el parámetro --allow-file-access-from-files . Luego puede usar la ubicación geográfica, siempre que no la haya desactivado en su configuración.


Existe algún tipo de restricción de seguridad en Chrome para usar la geolocalización desde un file:/// URI, aunque desafortunadamente no parece registrar ningún error para indicarlo. Funcionará desde un servidor web local. Si tiene Python instalado intente abrir un símbolo del sistema en el directorio donde están sus archivos de prueba y emitir el comando:

python -m SimpleHTTPServer

Debería iniciar un servidor web en el puerto 8000 (podría ser otra cosa, pero le indicará en la consola en qué puerto está escuchando), luego vaya a http://localhost:8000/mytestpage.html

Si no tiene Python, hay módulos equivalentes en Ruby, o Visual Web Developer Express viene con un servidor web local incorporado.


La forma más fácil es hacer clic en el área que queda en la barra de direcciones y cambiar la configuración de ubicación allí. Permite establecer opciones de ubicación incluso para el file:///



Para una solución fácil, solo copie el archivo HTML en algún recurso compartido en la nube, como Dropbox, y use el enlace compartido en su navegador. Fácil.


Yo también tuve este problema cuando estaba probando la API de Gelocation. Luego inicié IIS Express a través de Visual Studio y luego accedí a la página y funcionó sin problemas en todos los navegadores.


si está alojado detrás de un servidor y aún enfrenta problemas: intente cambiar el localhost a 127.0.0.1, por ejemplo, http://localhost:8080/ a http://127.0.0.1:8080/

El problema al que me enfrentaba era que estaba sirviendo un sitio usando apache tomcat dentro de un eclipse IDE (eclipse luna).

Para mi control de cordura, estaba usando la demostración de Remy Sharp: https://github.com/remy/html5demos/blob/eae156ca2e35efbc648c381222fac20d821df494/demos/geo.html

y estaba recibiendo el error después de hacer ajustes menores a la función de error a pesar de alojar el código en el servidor (solo funcionaba en Firefox y fallaba en Chrome y Safari):

"Usuario denegado Geolocalización"

Hice el siguiente cambio para obtener un mensaje de error más detallado:

function error(msg) { var s = document.querySelector(''#status''); msg = msg.message ? msg.message : msg; //add this line s.innerHTML = typeof msg == ''string'' ? msg : "failed"; s.className = ''fail''; // console.log(arguments); }

falla en Internet Explorer detrás de la aplicación virtual IE10 en http://10.0.2.2:8080 :

"La ubicación actual no se puede determinar"