zoukankan      html  css  js  c++  java
  • Angular 通过 $http.post 写入本地 JSON 文件

    最近在练习使用 Angular,在实现 $http 对本地 JSON 文档读写的时候遇到了问题。

    问题

    使用 GET 方法成功将 JSON 文档的内容读出来;但是在使用 POST 插入本地 JSON 文档 newBook 的时候,Chrome 的终端里出现了如下错误:

     Failed to load resource: the server responded with a status of 404 (Not Found)
    

    关键的代码贴出来:

    var bookLibraryApp = angular.module('bookLibraryApp', ['ngRoute']);
    
    bookLibraryApp.controller('BookLibraryController', function($scope, $http){
        $http.get('api/books.json').success(function(data){
            $scope.books = data;
        }).error(function(){
            alert("an unexpected error ocurred!");
        });
    
        $scope.addBook = function(){
            var newBook = {
                            isbn: $scope.newBook.isbn, 
                            title: $scope.newBook.title,
                            year: $scope.newBook.year
                          };
    
            $http.post('api/books.json', newBook).success(function(){
                $scope.msg = 'Data saved';
            }).error(function(data) {
                alert("failure message:" + JSON.stringify({data:data}));
            });
        }
    });
    

    对应的 HTML 文档为:

    <div class="container">
        <h2>Create a Book here</h2>
        <div class="createBookInfo">
            <p>ISBN: <input type="text" ng-model="newBook.isbn"/></p>
            <p>Title: <input type="text" ng-model="newBook.title" /></p>
            <p>Year: <input type="number" ng-model="newBook.year" /></p>
        </div>
        <br />
        <button ng-click="addBook()">Insert this book</button>
        <p>{{msg}}</p>
    </div>
    

    希望有朋友能够帮忙找下错误在什么地方,谢谢!

    3个回答

    1
    采纳

    在 Angular 官网的 IRC 里得到了帮助,答案(翻译)大概如下:

    file:/// 是本地简单的文本服务器,能够实现 $http.get() 的服务,但是要实行POSTPUTDELETE 的服务,就需要真正的网络服务器了。如果你会多种语言的话,可选的种类有很多种,基于 PHPRailRubyJava 等等。
    当然可以选择全 JS 的解决方案,比如我现在就在使用 MEAN,祝你玩儿的愉快。

    好,那么现在问题来了,讨论技术哪里强………………

    0


    以上我传输json post方法,正确的返回结果了

    +1

    是的 :D 把文件放在服务器(比如你用到的 http://localhostXXX)里就可以实现了。我之前错误是直接操作本地文件(api/books.json)。

    KAFFEECKO · 2015年05月29日

  • 相关阅读:
    dubbo
    常见线程池
    面试之葵花宝典
    Java线程池
    DB2分页
    平凡
    自由职业一时爽,一直自由一直爽
    弱水三千,只取一瓢。
    没病到一定程度,你千万别去。
    一个转身一个轮回
  • 原文地址:https://www.cnblogs.com/sweeeper/p/5822902.html
Copyright © 2011-2022 走看看