Angularjs与JSON,GET工作,但POST没有

时间:2014-11-04 18:24:47

标签: javascript json angularjs http post

我对angularjs比较新。我试图使用这个JSON,但似乎无法用我的post命令解决问题。 get工作得很好,但是其他任何东西都会抛出404 url​​错误,虽然我检查过并且一切都匹配。

这是我的app.js代码,它调用了可以运行的get命令

angular
.module('app', [
    'ui.router'
    ])
.config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider){
    $urlRouterProvider.otherwise('/');

    $stateProvider
        .state('home', {
            url: '/',
            templateUrl: 'templates/home.html',
            controller: 'homeCtrl',
            resolve: {
                friends: ['$http', function($http){
                    return $http.get('./api/friends.json').then(function(response ){
                        return response.data;
                    })
                }]
            }
        })
        .state('about', {
            url: '/about',
            templateUrl: 'templates/about.html',
            controller: 'aboutCtrl'
        })
        .state('contact', {
            url: '/contact',
            templateUrl: 'templates/contact.html'
        })
}])

这是homeCtrl.js文件,它为主页加载东西,我想编辑主页的内容并回发到JSON文件。

我在这里打电话给它,它给我一个404错误。

angular
.module('app')
.controller('homeCtrl', ['$scope', 'friends', '$http', function($scope, friends, $http){
        $scope.title = "Home";
        $scope.friends = friends;
        $scope.items =['item1', 'item2','item3'];
        $scope.selectedValue = 'item1';

        $scope.save = function() {
            $http.post('./api/friends.json', friends);
        };
}]);

这是home.html

<h1>{{title}}</h1>
<ul>
    <li ng-repeat = "friend in friends">
        <input type="text" ng-model="friend.name">
        <input type="text" ng-model="friend.age">
    </li>
</ul>
<button ng-click="save()" class="btn btn-primary">Save</button>

这是friends.json的代码

[
    {"name": "Will", "age": 30},
    {"name": "Laura", "age": 25}
]

1 个答案:

答案 0 :(得分:1)

您说“我想编辑主页的内容并回发到JSON文件。”

您无法使用angular保存到本地文件。 “获取”请求正在运行,因为浏览器可以加载静态文件(与css或html相同)。

您肯定只需单击html而不是任何http服务器来运行应用程序。如果您在文件夹中运行服务器(例如nodejs http-server)并将浏览器连接到它。它不会提供404(当然它不会更新json文件)

如果您需要保存数据,则需要真正的工作应用程序,它将提供API和流程请求以及存储数据。