2012-07-30 16 views
14

Tôi gặp sự cố với window.navigator, tôi nhận được mã lỗi 1, "Thành viên bị từ chối Định vị" bất cứ khi nào tôi chạy đoạn mã sau như một tập tin html địa phương:html navigator "Thành viên bị từ chối Định vị"

navigator.geolocation.getCurrentPosition(function(position) { 
     console.log(position); 
    }, function(positionError) { 
     console.log(positionError); 
    }); 

sản lượng xuất phát từ hàm lỗi, positionError chứa:

code: 1 
message: "User denied Geolocation" 

này không xảy ra nếu html chứa được phục vụ từ một số máy chủ.

Điều này có được mong đợi không? Có cách nào để sử dụng navigator từ một html địa phương? Tôi đang cố gắng viết một số ứng dụng dành cho thiết bị di động nhưng tôi cũng cố gắng tránh mạng bất cứ khi nào có thể.

cảm ơn.

+1

Bạn đang sử dụng trình duyệt nào? – Adam

Trả lời

23

Nếu bạn đang sử dụng chrome, xin vui lòng có một cái nhìn tại các câu trả lời dưới đây:

HTML 5 Geo Location Prompt in Chrome

Có vẻ đây là một hạn chế bảo mật cho các giao thức file. Có vẻ như bạn sẽ cần lưu trữ cục bộ từ máy chủ.

+1

Một giải pháp thực sự dễ dàng cho vấn đề này: nếu bạn đã cài đặt Python, hãy điều hướng đến thư mục gốc của dự án của bạn trong một terminal/command line/shell và chạy 'python -m SimpleHTTPServer'. (Nguồn: http://stackoverflow.com/questions/530787/simple-http-web-server) –

+0

Lưu ý: Ngay cả sau khi sử dụng máy chủ và làm mới trang, bảng điều khiển có thể trống. Tìm kiếm một thanh hoặc cửa sổ nhỏ ở đầu trình duyệt của bạn yêu cầu sự cho phép đối với các dịch vụ vị trí. – givanse

+3

'php -Slocalhost: 3000' cũng hoạt động. – manafire

4

Một phản ứng đơn giản mà làm việc cho tôi là chỉ cần thay đổi url của tôi từ

localhost 

để

127.0.0.1 

Chrome yêu cầu tôi xác nhận tôi muốn chia sẻ cài đặt vị trí của tôi và tôi đã đi!