2014-11-04 103 views
0

我是相对较新的angularjs。我试图用这个JSON来工作,似乎无法找到我的post命令的问题。 get可以正常工作,但是其他任何东西都会抛出404 url​​错误,尽管我检查了所有匹配项。Angularjs与JSON,GET工作,但POST不

这里是我的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

听起来像您的文章正在工作。如果服务器端代码返回404,可能是有问题的。如果您的服务器设置为处理该端点的帖子?另外,你可能想在这个'$ http.post('./ api/friends.json',friends)中使用'$ scope.friends';' – TheSharpieOne 2014-11-04 18:30:10

+0

你说你试图把你的修改发回。 json文件。您需要有一个服务来更新您的.json文件。当然,将这些数据保存在数据库中会更好。 – 2014-11-04 18:41:03

回答

1

你说“我想要编辑的主页和文章的内容的代码回到JSON文件。“

你不能以角度保存到本地文件。 “获取”请求正在工作,因为浏览器可以加载静态文件(与css或html相同)。

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

如果你需要保存数据,你需要真正的工作应用程序,它将提供API和处理请求和存储数据。