Angular 通过 $http.post 写入本地 JSON 文件

在使用Angular的$http进行POST操作时,尝试向本地JSON文件插入数据却遇到404错误。解决办法是将文件置于真正的服务器环境中运行。

最近在练习使用 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日

转载于:https://www.cnblogs.com/sweeeper/p/5822902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值