2017-03-20 1 views
-1

장치의 geolocation을 검색하기 위해 Javascript 코드를 실행하려고합니다. localhost (127.0.0.1)에서 코드를 실행하려고하면 코드가 예상대로 실행되어 팝업을 열어 사용자에게 위치 서비스를 사용하도록 요청합니다. 그러나이 코드를 호스팅하거나 로컬 IP 주소 (192.168.x.y)를 사용하여 액세스하려고하면 코드가 오류와 함께 실패합니다.geolocation을 검색 할 수 없습니다.

로컬 호스트에서 작동하는 이유와 그렇지 않은 경우에 대한 아이디어.

다음은 JS 코드

function geoFindMe() { 
    var output = document.getElementById("out"); 

    if (!navigator.geolocation){ 
    output.innerHTML = "<p>Geolocation is not supported by your browser</p>"; 
    return; 
    } 

    function success(position) { 
    var latitude = position.coords.latitude; 
    var longitude = position.coords.longitude; 

    output.innerHTML = '<p>Latitude is ' + latitude + '° <br>Longitude is ' + longitude + '°</p>'; 

    var img = new Image(); 
    img.src = "https://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&zoom=13&size=300x300&sensor=false"; 

    output.appendChild(img); 
    } 

    function error() { 
    output.innerHTML = "Unable to retrieve your location"; 
    } 

    output.innerHTML = "<p>Locating…</p>"; 

    navigator.geolocation.getCurrentPosition(success, error); 
} 

감사합니다.

+0

어떻게 행동을 재현하는 코드를 게시하지 않고도 누구나 답변 할 수있을 것으로 기대합니까? – pvg

+0

크롬 브라우저 설정으로 인한 것일 수 있습니다. IE를 사용하여 비슷한 문제가 발생했습니다. – soorapadman

+0

@pvg 코드가 127.0.0.1에서 실행될 때 코드가 올바르게 작동하므로 코드에 문제가 없다고 가정합니다. 거의 예상치 못한. 그럼에도 불구하고 코드를 가져온 링크를 언급했습니다 –

답변

0

최근 버전의 Chrome에는 일부 기능에 대한 보안 프로토콜이 필요합니다. 예를 들어 페이지는 사용자의 위치 정보를 얻을 수 있도록 httpS를 제공해야합니다.

로컬 호스트가 dev/debugging을 사용하도록 제한됩니다.

관련 문제