HTTPS로 리다이렉트되는 페이지를 인앱 브라우저에서 열면 모든 XHR 요청 (Ajax 요청)이 거부됩니다

안녕하세요.
현재 HTTPS로 운영되는 서비스를 운영하고 있는데,
일부 URL을 인앱 브라우저로 접속시 모든 XHR 요청이 거절되는 이슈가 발생하고 있습니다.
현재 서비스가 AngularJS 기반의 SPA (Single page application) 인 상태라, XHR에서 이슈가 발생하여 서비스 사용에 어려움을 겪고 있습니다.

일단, 현재 HTTP 요청은 NGiNX가 요청을 받아 Node.js 서버로 reverse proxy되게 구성된 상태입니다.
HTTPS를 사용하고 있고, HTTP로 접속하는 경우, 다음과 같이 HTTPS URL로 Redirect 처리되게 설정되어 있습니다.

일반적인 HTTPS 서비스들과 다를 것 없지요 ^^:

아무튼, 이 상황에서 카카오톡으로 URL을 공유하면 다음과 같은 이상한 결과가 나옵니다.

무엇보다, http로 표시되는 경우 브라우저에서 location object를 alert으로 직접 찍어보면 protocol이 http로 변조되어 있습니다. (실제로 접속한건 HTTPS인데!)

아무튼, 이로 인한 이유로 protocol이 변조되어 Origin이 https가 아닌 http protocol base로 변경되고,
결정적으로 XHR 요청시 (e.g. /api/some-endpoint 에 대한 요청을 보내는 경우) HTTPS 입장에서는 Insecure한 HTTP 요청을 보내게 되는 것이므로 access violation으로 인해 요청 자체가 거절되고 있는 것으로 보입니다.

저는 iOS 버전의 카카오톡 5.6.5를 사용하고 있으며,
iOS 9.3.1 / iPhone 6+ 단말을 사용하고 있습니다.

해당 이슈 확인 부탁드리겠습니다.
감사합니다.

네 확인하고 공유드리겠습니다.

네, 확인되시면 답장 부탁드리겠습니다. 감사합니다! :slight_smile:

@leon 안녕하세요. 혹시 본 이슈의 상태가 어떻게 되는지 알 수 있을까요?

다른 이슈 처리때문에 확인이 조금 늦었네요. 조금만 더 기다려주세요ㅜ

수정되었고 톡 클라이언트쪽 이슈라 톡 업데이트가 되면 확인하실 수 있습니다. 6월말~7월초 사이쯤 될것 같네요.

오, 기쁜 소식이네요. 답변 감사합니다.
혹시 이번 이슈가 iOS에만 한정이 되는지 (특정 OS 버전 이슈), 카카오톡 뿐만 아니라 카카오스토리쪽 웹뷰에서도 동일하게 일어나는지 알 수 있을까요? ^^;

그리고 썩 만족스러운 솔루션은 아닙니다만,
클라이언트 사이드에서 protocol을 검증하고 https가 아닌경우 유저를 이동시키면 정상 동작하는것을 확인했습니다.

아래 스니펫을 참고하세요!

톡/스토리 웹뷰에 다양한 기능이 추가되다보니 사이트 이펙트성으로 같은 이슈가 있을 수 있습니다만 아직까지 신고된건 없는 것 같네요~