【问题标题】:get requests from expressjs and angularjs从 expressjs 和 angularjs 获取请求
【发布时间】:2014-07-08 06:25:04
【问题描述】:

我的 expressjs 应用配置中有一条简单的路线,例如 -

app.get('/download/:noteid/:fileid',notes.download);

其中 notes.download 是一个函数,其内容为 -

exports.download = function(req,res) {
    console.log("here");
    console.log(req.params.noteid);
    console.log(req.params.fileid);
};

现在当我直接在浏览器中打开 url -

http://localhost:5000/download/5f4815f2-73a9-4621-86ed-b4e302cc49ba/all

我在服务器中看到了正确的日志 但是当我尝试类似 -

<a href="/download/5f4815f2-73a9-4621-86ed-b4e302cc49ba/all" class="btn btn-default pull-left">Download</a>

然后单击此下载按钮 Angular 将我带到一个没有为该页面定义任何模板的新页面,并且我在服务器的日志中看不到任何内容。那么我如何通过锚元素直接输入 url 来发出像我发出的请求一样的请求。

我的 Angular 应用程序的路由配置是这样的,以备不时之需 -

$routeProvider
        .when('/', { templateUrl: '/partials/main/main', controller: 'mainCtrl'})
        .when('/admin/users', { templateUrl: '/partials/admin/user-list',
            controller: 'PaginationDemoCtrl'
        })
        .when('/browse/notes', { templateUrl: '/partials/notes/browseNotes',
            controller: 'browseNotesCtrl', resolve:routeRoleChecks.user
        })
        .when('/upload/notes', { templateUrl: '/partials/notes/uploadNotes',
            controller: 'uploadNotesCtrl', resolve:routeRoleChecks.user
        })
        .when('/profile',{ templateUrl:'/partials/account/mvProfile.jade',
            controller: 'mvProfileCtrl' , resolve:routeRoleChecks.user
        }); 

【问题讨论】:

    标签: javascript angularjs routes


    【解决方案1】:

    当您直接从地址栏访问 url 时,它不会通过 routeprovider,而当您尝试通过 webapp 中的超链接(锚标记)点击 url 时,routeprovider 会检查是否为您的链接定义了路径.

    您可以删除 href 并使用调用控制器中的函数的锚标记的单击事件。这个函数必须调用 $http 模块的 get 方法和 url。

    或者——

    在 routeprovider 中添加一个路径。

    https://docs.angularjs.org/api/ng/service/$http#get

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 2012-08-14
      • 2014-08-04
      • 2017-01-11
      • 2021-06-19
      • 2015-06-28
      • 1970-01-01
      • 2014-05-06
      • 2016-07-25
      相关资源
      最近更新 更多