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日


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM