在开发AngularJS应用程序时遇到以下问题。
我正在尝试将一些数据发布到我有本地的JSON文件
当我尝试这样做时,我得到了:无法加载资源:net :: ERR_EMPTY_RESPONSE(17:52:25:265 |错误,网络) 在public_html / logins.json
这是一个发布的功能:
$scope.sendOrder = function(shippingDetails){
var order = angular.copy(shippingDetails);
order.products = cart.getProducts();
$http.post("orders.json",order)
.success(function(data){
$scope.data.orderId = data.id;
cart.getProducts().length =0;
})
.error(function(error){
$scope.data.orderError = error;
})
.finally(function(){
$location.path("/complete");
});
};
有什么不对?
答案 0 :(得分:1)
JSON是一种用于以结构化格式存储数据的格式,而POST是一种HTTP协议,通常用于将数据发送到服务器。
要将数据保存到名为orders.json的文件中,您必须创建一个服务器端脚本,该脚本可以具有与您的文件系统交互的权限。客户端代码(如浏览器中的Javascript)无法执行此操作,因为它不会在服务器上运行。
这是一些未经测试的PHP代码,用于从$_POST['data']
获取值并将其保存到orders.json
。重要的是要注意,这将简单地将您的数据打到文件的末尾,并且不会保留结构。 高度建议使用数据库存储结构化数据,而不是发明自己的格式并为其编写API。
if($_POST['data'] && strlen($_POST['data']) > 0) {
//This is super dangerous - saving user input directly to a file.
//I'm not sure exactly what $_POST['data'] will contain for you, so please make sure it's sanitized before doing this
file_put_contents("orders.json", $_POST['data'], FILE_APPEND | LOCK_EX);
}
然后用AJAX调用它:
$http.post('filesaver.php', order)
.success(function(data, status, headers, config) {
//do stuff
})
.error(function(data, status, headers, config) {
//do different stuff
});