/ / AngularJS и php маршрутизацията в IE9 не работи - php, angularjs, angularjs-routing

AngularJS и php маршрутизация в IE9 не работи - php, angularjs, angularjs-маршрутизация

Имам приложение с маршрутизация на php. Ето един прост пример:

$req=$_SERVER["REQUEST_URI"];
if(strpos($req, "/items/") === 0){
include __DIR__."/../views/items/index.php";
} else{
include __DIR__."/../views/login/index.php";
}

на всяка страница (елементи и данни за вход) angularjs routingсе използва. И всички работи перфектно с изключение на IE9 и по-долу. След натоварване на страницата, ъгловите актуализации URL и презарежда страницата за маршрутизация с хеш навигация. И аз получавам следния проблем в IE:

  1. въведете url = / items / 23
  2. връща страница items/index.php
  3. AngularJS променя url на / #! / Items / 23
  4. Сървърът не може да чете данни след символа хеш и смята, че URL адресът е / така се връща страница login/index.php

В резултат на това не мога да отворя елементи страница в IE. Как мога да разреша проблема? Използвах да пренасочвам събитието $routeChangeSuccess в IE, за да добавите параметри на заявката, за да го прочете на сървърната страна, но новата версия на ъгловата маршрутизация постави параметрите на заявката след хеш и те не могат да бъдат прочетени на сървърната страна.

Доставчикът на ъгловото местоположение е $locationProvider.html5Mode(true).hashPrefix("!");

Отговори:

1 за отговор № 1

Намерили ли сте решение?

Мисля да променя кода на angularjs за съхраняване на пътя в бисквитка, която след това може да бъде изтеглена от php, когато ъгловата опресняване на страницата, за да се промени URL адресът да бъде hashbang (ie8 в html5mode)

Проблемът е отворен тук https://github.com/angular/angular.js/issues/6195

Изтеглете заявката тук https://github.com/angular/angular.js/pull/6303