我成功地用一个php脚本(save-data.php)把我的数据保存到了json文件里,但是我无法通过我的get-data.php脚本正确地获取它。
错误信息:angular.js:12520 SyntaxError: Unexpected token < in JSON at position 0 at Object.parse (native)
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格式,也不需要解析它(所有脚本中都有注释)。
get-data.php
会发生什么?我可以百分之百保证,你的php代码不会被执行,并且它会原样返回文件。 - E_pjson_decode()
?这会将你的 JSON 对象转换成数组,所以显然 Angular 在此之后无法解析它(JSON.parse()
期望的是 JSON 对象)。直接传递它而不进行转换即可。 - mitkosoft