2016-06-21 12 views
6

Verilerimi bir php betiğiyle (save-data.php) bir json dosyasına başarıyla kaydediyorum ama edemiyorum get-data.php betiğimle doğru şekilde almak içinSyntaxError: Beklenmeyen belirteci <JSON içinde 0 konumunda, Object.parse (native) (AngularJS)

hata iletisi: angularjs: 12520 SyntaxError: JSON beklenmeyen belirteç < 0 konumunda (yerli) Object.parse de

kaydet-data.php:

<?php 

$json = file_get_contents("php://input"); 

$file = fopen('C:/test/save-data.json','w+'); 

fwrite($file, $json); 

fclose($file); 

?> 

olsun 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 

?> 

tasarruf-Data.JSON:

{ 
    "id": "179", 
    "var1": "variable1", 
    "var2": "variable2" 
} 

örnek kontrolörü:

// 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); 
    }); 
    }; 

DÜZENLEME: json ne de bunu ayrıştırmak ben json dosyası deşifre etmek gerek yoktu (hepsi komut dosyalarında yorumlanmıştır).

+0

Tarayıcıda 'get-data.php' öğesine giderseniz ne olur? Php kodunuzun yürütülmediğini% 100 garanti edebilirim ve dosya olduğu gibi döndürür. –

+2

Neden get-data.php'nizde 'json_decode()' diyorsunuz? Bu, JSON nesnesini diziye dönüştürür, bu nedenle açısal açılama bundan sonra ayrıştırılamaz ('JSON.parse()', JSON nesnesini bekler). Sadece bu dönüşüm olmadan geçmek. – mitkosoft

+0

, dönüştürme olmadan (json_decode()): angular.js: 12520 Sözdizimi: JSON'da beklenmedik bir simge, Object.parse (yerel) – Ariana

cevap

11

Her zaman, 99.9999999% 'ü hatada Unexpected token < in JSON as position 0 aldığınız zaman, sunucudan json ALMAYIN. Daha sonra jsonunuzla bir HTML hata mesajı aldınız. bu pozisyon 0 (ilk karakteri), çünkü hata gelmektedir burada <p>... içinde

<p>PHP warning: blah blah blah</p> 
{"foo":"bar"} 

gelen < olup.

Sunucudan gelen ham verileri kontrol edin ve PHP'nin tükürdüğü hata/uyarıyı düzeltin.

+0

Json dosyasını json'a çözmem ya da ayrıştırmam gerekmedi. – Ariana

2

Lütfen PHP dosyanızı kontrol edin. Bu istenmeyen yankı mevcut olabilir, bu yüzden json cevabı kesin cevabı alamadı. Sorunumu bu şekilde çözüyorum. Umut Bu yardımcı olur!

İlgili konular