javascript - 在页面重新加载中使用 $locationProvider 不起作用

标签 javascript angularjs

为了从地址 url 中消除 # ,我尝试在路由器中使用 $location 提供程序。在第一次加载时,将 root 更改为另一个 url 是可行的。但是当我重新加载新页面时,我得到 Cannot GET/functionists

这是我的配置:

app.config(['$routeProvider','$locationProvider' ,
    function ($routeProvider , $locationProvider ) {
        $routeProvider.
            when('/functionalists',
            {
                templateUrl: '/public/app/views/functionalities/functionalities.html',
                controller: 'FuntionalitiesController'


            })
            .when('/setting',
            {
                templateUrl: '/public/app/views/setting/setting.html',
                controller: 'SettingController'
            })
            .when('/guide',
            {
                templateUrl: '/public/app/views/guide/guide.html',
                controller: 'GuideController'
            })
            .when('/contact',
            {
                templateUrl: '/public/app/views/contactus/contactus.html',
                controller: ''
            })
            .when('/token',{

            })
            .otherwise({
                redirectTo: '/'
            });

        $locationProvider.html5Mode(true);

    }]);

这是我用于重定向的 Controller

app.controller('MainViewController', ['$scope', '$location', 'MainViewFactory', function ($scope, $location, MainViewFactory) {

    $scope.functions = function () {
        $location.path("/functionalists")
    };
    $scope.setting = function () {
        $location.path("/setting")
    };
    $scope.guide = function () {
        $location.path("/guide")
    };
    $scope.contactUs = function () {
        $location.path("/contact")
    };

}]);

请帮助我解决这个问题!

最佳答案

您应该在服务器端(后端)处理此问题 实际上请求http://server.net/setting这种方式会将您带到网络服务器,而您的网络服务器不会正确回复您,

在appache和php索引页面中我使用这样的东西:

Header add Access-Control-Allow-Origin "http://localhost:3000"
Header add Access-Control-Allow-Credentials "true"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "GET, POST"
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]


<FilesMatch "\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch "index[0-9]?\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>

不幸的是,如果您无权访问后端,则应该使用主题标签

关于javascript - 在页面重新加载中使用 $locationProvider 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479948/

相关文章:

javascript - 如何使用 Angular JS 从设置文件中读取多个属性和值?

javascript - 使用 Angular ngMessage 进行带有错误消息的表单验证

javascript - 使用 CSS 在页面加载时从中心向外增长线?

javascript - 如何在 JQuery 中定位相对于按钮的 div

javascript - Angular 6 中的字母数字字符串验证

javascript - 如何使用 javascript 在 Google Drive 上创建文件夹

angularjs - 使用 Karma 测试时 $rootScope 未定义

javascript - 突出显示表单输入之间的文本?

c# - ServiceStack 嵌套数组错误 : KeyValueDataContractDeserializer: Error converting to type: Type definitions should start with a '{'

angularjs - 在 Angular 配置状态期间加载数据