我已使用php脚本(save-data.php)将数据成功保存到json文件中,但无法使用get-data.php脚本正确获取数据。
错误消息: angular.js : 12520语法 错误: Object.parse(本地)位置0处的JSON中的意外令牌<
save-data.php :
<?php $json = file_get_contents("php://input"); $file = fopen('C:/test/save-data.json','w+'); fwrite($file, $json); fclose($file); ?>
get-data.php :
<?php //header('Content-Type: application/json'); $json = file_get_contents('C:/test/save-data.json'); //Decode JSON //$json_data = json_decode($json, true); //Print data echo $json ?>
save-data.json :
{ "id": "179", "var1": "variable1", "var2": "variable2" }
样品控制器 :
// save data (myModel: id, var1, var2) $scope.save = function() { console.log('Creating a JSON'); $scope.jsonString = angular.toJson($scope.myModel, true); $http.post('save-data.php', $scope.jsonString).then(function(data) { $scope.msg1 = 'Data saved'; }); $scope.msg2 = 'Data sent: '+ $scope.jsonString; }; // get data $scope.get = function() { $http.get('get-data.php').then(function(data) { //$scope.my_data = JSON.parse(data); console.log(data.data); }); };
编辑:我不需要将json文件解码为json也不进行解析(所有脚本均已注释)。
总是有99.9999999%Unexpected token < in JSON as position 0的错误发生,您没有从服务器收到json。之后,您收到了带有json的HTML错误消息。
Unexpected token < in JSON as position 0
<p>PHP warning: blah blah blah</p> {"foo":"bar"}
领先<的<p>...是在错误的来源,因为这是位置0(第一个字符)。
<
<p>...
检查从服务器返回的原始数据,并修复任何错误/警告PHP随地吐痰。