请求Angular但不适用于Web浏览器

时间:2016-03-10 10:13:54

标签: angularjs json http express

我刚开始学习网页开发。对不起,如果有类似的问题,但我找不到满意的答案。我正在尝试从angular执行简单的http get请求以获得简单的json响应。但是我可以手动键入localhost:8080/test并在屏幕上呈现json。是否有任何标准的解决方案从角度服务器获取信息?我相信在正常的应用程序中,我不应该直接看到这个json。我有:

controllers.js

var myApp = angular.module('myApp',[]);

myApp.controller('myController', function($scope, $http) {
    $http.get('/test').success(function(data) {
        $scope.greeting = data.test;
    });        
})
server.js

中的

app.get('/test', function(req, res) {
    res.status(200).json({'test': 'it works!'});
})

1 个答案:

答案 0 :(得分:1)

var myApp = angular.module('myApp', ['ngRoute']);

myApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {

    $routeProvider
        .when('/', {
            templateUrl: '/home',
            controller:'homeCtrl'
        })
        .when('/test', {
            templateUrl: '/test',
            controller:'errorCtrl'
        })
        .otherwise('/')
}]);

现在您已限制用户访问/测试页面了。然后看这里:

myApp.controller('homeCtrl', function ($scope) {
    $scope.getData = function(){
        $http.get('/test').then(function success(response){
           $scope.data = response.data;
         }, function error(error){
          console.log(error);
       });
    }
});

smpApp.controller(errorCtrl', function ($scope, $location) {
   $location.path('/home');
});

现在在这样的Html中:

<button type="button" ng-click="getData()">Get Data to user</button>

在Server.Js文件中

app.get('/test', function(req, res) {
   var data = {
     test : 'it works.fine !!!!'
   };
   res.json(data);
})

我希望你明白这一点......

谢谢&amp;干杯