กำลังโพสต์ปัญหาที่คล้ายกันกับวิธีแก้ปัญหาที่ฉันต้องเผชิญ
หวังว่าจะช่วยให้ผู้ที่มีข้อกำหนดคล้ายกันpreserving hash in IEสำหรับการเปลี่ยนเส้นทาง 302
การเพิ่มส่วนสำคัญของคำตอบแทนการเชื่อมโยงเพียงอย่างเดียว
เราใช้การSiteMinderพิสูจน์ตัวตนในแอปพลิเคชันของเรา
ฉันคิดว่าหลังจากการตรวจสอบที่ประสบความสำเร็จSiteMinderจะทำ302 redirectionกับผู้ใช้ร้องขอหน้าแอพลิเคชันโดยใช้แบบฟอร์มการเข้าสู่ระบบของตัวแปรที่ซ่อนอยู่value (ที่จะเก็บผู้ใช้ร้องขอ URL /myapp/- without hash fragmentเพราะมันจะไม่ถูกส่งไปยังเซิร์ฟเวอร์) redirectที่มีชื่อคล้ายกับ แบบฟอร์มตัวอย่างด้านล่าง

เนื่องจากค่าredirectตัวแปรที่ซ่อนอยู่มีเฉพาะโดยไม่มีส่วนแฮชและเป็นการเปลี่ยนเส้นทาง 302 ส่วนแฮชจะถูกลบโดยอัตโนมัติโดย IE ก่อนที่จะมาถึงแอปพลิเคชันของเราและวิธีแก้ปัญหาใด ๆ ที่เราพยายามในรหัสแอปพลิเคชันของเราไม่ได้ผล/myapp/
IE การเปลี่ยนเส้นทางไป/myapp/เท่านั้นและจะมีการเชื่อมโยงไปถึงบนหน้าแรกของการเริ่มต้นของ https://ourapp.com/myapp/#/homeapp
เสียเวลาเกือบวันเพื่อคิดหาพฤติกรรมนี้
วิธีแก้ปัญหาคือ:
มีการเปลี่ยนแปลงรูปแบบการเข้าสู่ระบบตัวแปรที่ซ่อนอยู่ ( 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 สำหรับคำอธิบายโดยละเอียดและการแก้ปัญหานี้