繁体   English   中英

Angularjs,从IE中的url中删除#

[英]Angularjs, remove # from url in IE

我有以下问题。 在客户端,我有角度路由,类似的东西:

...
$locationProvider.html5Mode(true);
    $routeProvider.
        when('/item/:item_id', { reloadOnSearch: false, templateUrl: '/views/main/partials/_item.html', controller: ItemCtrl }).
        otherwise({redirectTo: '/login'}); // Default
...

和PHP上的服务器端的一些路由

$req=$_SERVER['REQUEST_URI'];
if(strpos($req,'/login') > -1){
    include __DIR__.'/../views/login/index.php';
} else if(strpos($req,'/item/') > -1) {
    include __DIR__.'/../views/item/index.php';
else {
    include __DIR__.'/../views/login/index.php';
}

一切都很好,除了IE,因为当在IE上执行客户端路由时,url会从这个更改

myapp/item/123

这样的事情

myapp/#/item/123

当服务器端在客户端路由后收到这种请求URL时,散列标签之后的所有数据都消失了,我无法区分应该使用哪个路由。 我可以从网址中删除#,还是做其他事情让IE和服务器端安静地生活? 我试图解决它失败了。 谢谢

您的IE版本不支持HTML5 History API 要发送哈希,你应该做一些额外的工作,例如在$routeChangeStart上做额外的ajax请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM