getCurrentPosition () 및 watchPosition ()은 안전하지 않은 출처에서 더 이상 사용되지 않습니다.
사용자에게 지리적 위치 데이터를 요청하는 내 웹 사이트 에서이 오류가 발생합니다.
getCurrentPosition () 및 watchPosition ()은 안전하지 않은 출처에서 더 사용되지 않습니다. 애플리케이션을 HTTPS와 같은 보안 오리진으로 전환하는 것을 잊지 않습니다. 자세한 내용은 goo.gl/rStTGz 를 참조하세요.
기본적으로 알림 일 뿐이며 Google 링크는 사용하지 않습니다.
웹 사이트를 SSL로 옮길 계획이 없습니다. 저 같은 사람을위한 대안이 있습니까?
https://github.com/stefanocudini/leaflet-gps/issues/15 에서 / jstillwell의 게시물에서 가능한 답변을 찾았습니다. (Chrome에서만?) HTTP 사이트에서만 지원됩니다. HTTPS는 여전히 정상이며 HTTP 사용을 대체 할 계획은 없습니다.
HTTPS로 전환하는 것은 아키텍처에 따라 고통 스럽거나 불가능할 수 있으므로 해결 방법을 찾았습니다 . Google Maps Geolocation API를 사용할 수 있습니다 . 사용 제한이 작업을 수행합니다. 브라우저 API 키가 필요하다면 사용을 페이지 호스트 이름으로 제한하는 것을 잊지 않고.
getCurrentPosition()
실패하면 방법에 대한 대체 방법으로 사용 합니다. HTTPS로 전환 할 때까지 작동하도록 할 수 있습니다.
다음은 JSFiddles입니다.
예. Google 크롬은 버전 50에서 더 이상 사용하지 않습니다. 크롬 에서이 기능을 사용하려는 경우 오류는 다음과 가능합니다.
getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins for more details.
따라서 SSL 인증서를 추가해야합니다. 그게 유일한 방법입니다.
이제 Let 's Encrypt를 사용하는 것은 매우 신뢰할 수 있습니다. 여기에 가이드가 있습니다.
그리고 테스트 목적으로 다음을 시도 할 수 있습니다.
1. localhost는 HTTP를 보안 출처로 보안 출처로 제공합니다. localhost에서 서버를 사용할 수있는 서버에서 기능을 테스트 할 수 있습니다.
2. --unsafely-treat-insecure-origin-as-secure = "http://example.com"플래그를 사용하여 크롬을 사용할 수 있습니다 ( "example.com"을 실제로 테스트하려는 출처로 대체). 이 세션에서 해당 출처를 안전한 취급합니다. 플래그가 작동 할 새로운 테스트 프로필을 만들려면 --user-data-dir = / test / only / profile / dir도 포함해야합니다.
Firefox는 또한 사용자가 http
. 다음은 웹킷 변경 로그입니다.
이를 위해 https://ipinfo.io API를 사용할 수 있습니다 (내 서비스입니다). 하루에 최대 1,000 회까지 무료입니다 (SSL 지원 여부에 관계없이). 좌표, 이름 등을 제공합니다. 예를 들면 다음과 같습니다.
curl ipinfo.io
{
"ip": "172.56.39.47",
"hostname": "No Hostname",
"city": "Oakland",
"region": "California",
"country": "US",
"loc": "37.7350,-122.2088",
"org": "AS21928 T-Mobile USA, Inc.",
"postal": "94621"
}
다음은 일치하는 API 응답으로 일치하는 것과 일치하는 것입니다 getCurrentPosition()
.
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
});
다음은이를 대체 할 수있는 방법을 더 예입니다 getCurrentPosition()
.
function do_something(coords) {
// Do something with the coords here
}
navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords);
},
function(failure) {
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
do_something(coords);
});
};
});
자세한 내용은 http://ipinfo.io/developers/replacing-navigator-geolocation-getcurrentposition 을 참조하십시오.
--unsafely-treat-insecure-origin-as-secure = "http://example.com"플래그 ( "example.com"을 실제로 테스트하려는 출처로 대체)를 사용하여 크롬을 사용할 수 있습니다. 이 세션에 대해 안전한 출처입니다. 플래그가 작동 할 새로운 테스트 프로필을 만들려면 --user-data-dir = / test / only / profile / dir도 포함해야합니다.
예를 들어 Windows를 사용하는 경우 시작을 클릭하고 실행합니다.
chrome --unsafely-treat-insecure-origin-as-secure="http://localhost:8100" --user-data-dir=C:\testprofile
개발자의 경우에만이 기능을 사용하도록 특정 로컬 도메인을 승인 할 수 있습니다.
HTTP에서 오류가 발생합니다.
아래 레이블에서 localhost 에 대한 권한을 설정합니다 (이러한 HTTP 참조 자 (웹 사이트)의 요청을 수락합니다).
그것은 나를 위해 일했습니다.
geoLocation API가 더 낫다는 것을 알고 있지만 SSL을 사용할 수없는 사람들 에게는 geopluginService 와 같은 일종의 서비스를 계속 사용할 수 있습니다 .
문서에 지정된대로 ip와 함께 요청을 서비스 url에 전송하기 만하면 http://www.geoplugin.net/php.gp?ip=xx.xx.xx.xx
출력이 직렬화 된 배열이므로 사용하기 전에 직렬화를 해제해야합니다.
이 서비스는 geoLocation만큼 정확하지는 않지만 여전히 쉽고 빠른 솔루션입니다.
사용 FireFox
또는 대신 다른 브라우저 Chrome
개발 환경에서 테스트하고 싶은 경우는, 생산을 위해 사용하는 외에는 방법이 없습니다 https
.
개발 환경의 경우 http://localhost:8100/
FireFox에서 열면 안타깝게도 그러한 오류가 없습니다.
SSL 인증서를 설치 getCurrentPosition()
하고 watchPosition()
더 이상 안전하지 않은 출처에서 작업하지 않을 시간을주세요 . 이 기능을 사용하려면 애플리케이션을 HTTPS와 같은 보안 원본으로 전환하는 것을 고려해야합니다.
'ProgramingTip' 카테고리의 다른 글
Git 경고 : push.default가 설정되지 않았습니다. (0) | 2021.01.07 |
---|---|
부모 RecyclerView 안에있는 방법은 무엇입니까? (0) | 2021.01.07 |
배열의 최대 크기가 "너무 큰"이유는 무엇입니까? (0) | 2021.01.07 |
AngularJS에서. $ on ()은 무엇입니까? (0) | 2021.01.06 |
TypeError : data.push는 함수가 아닙니다. (0) | 2021.01.06 |