내가 직면 한 솔루션 과 비슷한 문제를 게시 했습니다.
preserving hash in IE
302 리디렉션 과 비슷한 요구 사항을 가진 사람에게 도움이되기를 바랍니다 .
링크 자체 대신 답변의 필수 부분 추가
우리는 SiteMinder
응용 프로그램에서 인증을 사용 합니다.
나는 인증이 성공하면 것을 생각 SiteMinder
하고있다 302 redirection
사용하여 사용자 요청 응용 프로그램 페이지에 로그인 폼 숨겨진 변수value
(이것은 사용자가 URL을 요청 저장 /myapp/
- without hash fragment
이 서버로 전송되지 않습니다 때문에)와 유사한 이름으로 redirect
. 아래 샘플 양식
이후 redirect
숨겨진 변수 값 만을 포함 /myapp/
해시 조각없이하고 302 리디렉션의 해시 조각이 자동으로 심지어 우리의 응용 프로그램과 우리가 우리의 응용 프로그램 코드에서하려고하는 솔루션을 밖으로 작동하지 않는 무엇에 오기 전에 IE에 의해 제거된다.
IE는 (으) /myapp/
로만 리디렉션되며 앱의 기본 홈 페이지에 방문합니다 https://ourapp.com/myapp/#/home
.
이 행동을 알아 내기 위해 거의 하루를 낭비했습니다.
해결책은 다음과 같습니다.
기존 값과 함께 추가하여 해시 조각을 보유 하도록 로그인 양식 숨겨진 변수 ( redirect
) 값 을 변경했습니다 window.location.hash
. 아래 코드와 유사
$(function () {
var $redirect = $('input[name="redirect"]');
$redirect.val($redirect.val() + window.location.hash);
});
변경 후, redirect
숨겨진 변수는 사용자 요청 URL 값을 저장하고 /myapp/#/pending/requests
그리고 SiteMinder
그것을 리디렉션 /myapp/#/pending/requests
IE이다.
위의 솔루션은 세 브라우저 모두에서 제대로 작동합니다 Chrome, Firefox and IE
.
이 문제 에 대한 자세한 설명과 솔루션 을 제공하는 @AlexFord에게 감사합니다 .