한글도메인에서 주소로 좌표를 검색하는 addressSearch 관련 문의드립니다

한글도메인을 웹플랫폼 사이트도메인으로 입력하고
javascript 키를 사용하여 지도를 보여주고 있는데요

var daum.maps.services.Geocoder();

geocoder.addressSearch('주소...', function(result, status){
    console.log(status);
    console.log(result);
});

익스플로러 11 환경에서는 status: null, result: ERROR가 찍히고,
크롬 환경에서는 status:OK, result도 정상적인 내용이 찍힙니다.

한글도메인에서 두 환경 모두 지도 불러오는곳까지는 정상적으로 동작하는데
geocoder.addressSearch 부분에서 브라우저에 따라 문제가 발생하는것 같습니다.

확인 부탁드립니다.

  • 영문도메인으로 같은 내용을 테스트할 때에는 문제가 발생하지 않았습니다.

과거 유사 케이스 문의가 있어 링크를 공유드립니다.

이부분이 당사에서 처리를 할 수 있는 부분일 지는 정확히 모르겠습니다만, ( cc. @doji.doo )
한글도메인, IE 환경에서의 주소검색은 REST API 를 별도로 사용하셔야 할 수도 있겠네요

브라우저에서 요청을 보낼때
요청 헤더의 Origin 또는 Referer 필드에
카카오 서버에서 인증시 필요한 도메인을 실어 넘기는데

이게 브라우저별로 잘 전달해 주는 경우가 있고
IE9 이하와 같이 인코딩을 안하고 넘겨서 문제가 되는 경우가 생깁니다.
이 경우는 당장에 뭘 해드릴 수 없는, 해결책이 마땅히 없는 상황이고요.

만약 IE11에서 발생한 문제라면
페이지의 문서모드가 IE9로 잡혀서 그럴 수 있습니다.
제가 확인한 바로는 IE10, IE11에서는 정상 응답을 받았습니다.

페이지 문서에 작성된 meta 태그중 X-UA-Compatible 관련 태그의 값이 어떻게 설정되어 있는지 확인해 보시고 아래 링크를 참고하시어 문서모드를 변경해 보시길 바랍니다.
http://webdir.tistory.com/38

1개의 좋아요

참고가 될까 싶어 한글도메인에서 geocoder.addressSearch 요청시 브라우저별 테스트 결과 올립니다.

웹플랫폼 사이트 도메인으로

  1. 퓨니코드도메인만 등록 시 : IE11 비정상, 크롬 정상, 엣지 비정상
  2. 한글도메인만 등록 시 : IE11 비정상, 크롬 비정상, 엣지 비정상
  3. 퓨니코드도메인과 한글도메인 모두 등록시 : IE11 정상, 크롬 정상, 엣지 비정상

웹페이지의 X-UA-Compatible 태그는 IE=edge로 되어 있습니다.

네 맞습니다 두 개 모두 등록해야 되고요.
위에서 제가 IE11이 되는 상황 또한 모두 등록했다고 가정하고 말씀드린 것입니다.
(도메인 등록 콘솔에서 한글도메인을 등록하면 자동으로 punycode가 써지기에 그렇게 전제한 거고요 ^^;)

한글 도메인인 경우 브라우저마다 요청 헤더에 쓰는 값들이 서로 달라서… 그렇습니다.

특히 Edge같은 경우에는

JS로 건드릴 수 없는 referer 헤더값을 인코딩이 깨진채로 보내버리니
현재의 인증체계에서는 저희쪽에서 당장 해결 가능한 답이 없어요.

한글 도메인을 대응하시려면…
해당 JS를 써서 바로 ajax로 카카오 서버를 찌르지 마시고
작업하시는 웹서버에 REST API를 하나 만드셔서
그 웹서버에서 카카오 서버로 Server-to-Server로 요청하는 카카오 REST API를 사용하시고
페이지에서 웹서버의 REST API를 ajax 호출하면 그 결과를 받아서 bypass로 주는 방식으로 우회하셔야 할 듯 합니다.

힘들게 브라우저 테스트를 해 주셨는데ㅠ 큰 도움이 되지 못해 죄송합니다.

1개의 좋아요