Пользовательский маршрут MVC добавляет угловой url-адрес http-запроса к текущему url-адресу в IE

Я столкнулся с небольшой проблемой с пользовательской маршрутизацией, которую я сделал. У нас есть эти пользовательские маршруты, которые обрабатывают Perma-ссылки продукта, и у меня есть Angular в фоновом режиме, выполняющий запросы к серверу для маршрутов, которые не являются perma-ссылками. Это работает хорошо, и он будет загружать другие страницы в каждом другом браузере, кроме IE.

Что происходит в IE, это берет относительный url-адрес из http-запроса, и он просто добавляет его, например:

Это URL-адрес permalink, который загружается нормально:

http://localhost:16124/products/7-1-2-contemporary-glass-full-border-award/

Это запрос в Angular, когда я щелкаю ссылку, чтобы настроить этот продукт:

 var navigateUrl = "Product/Customize/" + this.productId;
        if (product.isCustomizable != true) {
            navigateUrl = "Cart";    
        }
        this.$window.location.href = navigateUrl;

И url он пытается вызвать это:

http://localhost:16124/products/7-1-2-contemporary-glass-full-border-award/Product/Customize/8036

У меня была похожая проблема на других браузерах, где, если я использовал Html.ActionLink он будет создавать url-адреса для чего-либо внутри страниц permalink он будет добавлять url-адрес в качестве строки запроса, и исправить, что я просто переключил их на простые html-ссылки, где я написал Полный относительный url сам, но я не думаю, что это проблема здесь; кто-нибудь знает, что может произойти? Снова у меня только эта проблема в IE.

1 ответ

  1. Хорошо, поэтому я понял, что проблема была, если вы используете местоположение.href, в этом случае IE не достаточно умен, чтобы повторить url после имени хоста, поэтому он заканчивается просто добавлением того, что у вас было в конце url, поэтому измените его на местоположение.pathname исправит ошибку, потому что он говорит IE явно повторить url после имени хоста.