您的位置:首页 > 理论基础 > 计算机网络

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

2016-08-30 17:34 656 查看
最近在练习使用 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>

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

2014年11月05日提问

编辑

2 评论

邀请回答

更多

默认排序时间排序

3个回答

答案对人有帮助,有参考价值1答案没帮助,是错误的答案,答非所问
采纳

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


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


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

2014年11月05日回答

编辑

3 评论





KAFFEECKO50 声望

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问





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

2015年05月29日回答 · 2015年05月29日更新

编辑

2 评论





voidException1 声望

+1

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

KAFFEECKO · 2015年05月29日
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐