Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs与JSON,GET有效,但POST无效';T_Javascript_Json_Angularjs_Http_Post - Fatal编程技术网

Javascript Angularjs与JSON,GET有效,但POST无效';T

Javascript Angularjs与JSON,GET有效,但POST无效';T,javascript,json,angularjs,http,post,Javascript,Json,Angularjs,Http,Post,我对angularjs比较陌生。我正在尝试使用JSON,但似乎无法用post命令解决这个问题。get工作得很好,但是其他任何东西都会抛出一个404URL错误,尽管我检查过了,并且所有内容都匹配 下面是我的app.js代码,它调用了get命令 angular .module('app', [ 'ui.router' ]) .config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $st

我对angularjs比较陌生。我正在尝试使用JSON,但似乎无法用post命令解决这个问题。get工作得很好,但是其他任何东西都会抛出一个404URL错误,尽管我检查过了,并且所有内容都匹配

下面是我的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>
您说“我想编辑主页的内容并发回JSON文件。”

无法使用angular保存到本地文件。“Get”请求之所以有效,是因为浏览器可以加载静态文件(与css或html相同)

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


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

听起来您的帖子正在工作。可能您返回404的服务器端代码有问题。如果您的服务器设置为处理到该端点的帖子?另外,您可能希望在
$http.post('./api/friends.json',friends)中使用
$scope.friends
您声明您正试图将更改发回.json文件。您需要有一个适当的服务来更新.json文件。当然,最好将这些数据保存在数据库中。
[
    {"name": "Will", "age": 30},
    {"name": "Laura", "age": 25}
]