2016-06-21 19 views
6

Sto salvando i miei dati in un file json con uno script php (save-data.php) ma non riesco per recuperarlo correttamente con il mio script get-data.php. messaggioSyntaxError: Token imprevisto <in JSON in posizione 0 su Object.parse (nativo) (AngularJS)

Errore: angular.js: 12520 SyntaxError: imprevisto gettone < in JSON in posizione 0 a Object.parse (nativo)

Salva-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 

?> 

Salva-data.json:

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

regolatore campione:

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

EDIT: Non ho bisogno di decodificare il file JSON per JSON né analizzarlo (tutti hanno commentato gli script).

+0

Cosa succede se vai a 'get-data.php' nel browser. Posso garantire al 100% che il tuo codice php non venga eseguito e restituisce il file così com'è. –

+2

Perché stai chiamando 'json_decode()' nel tuo get-data.php? Questo converte il tuo oggetto JSON in un array, quindi ovviamente l'angolare non può analizzarlo dopo ('JSON.parse()' si aspetta oggetto JSON). Basta passarlo senza questa conversione. – mitkosoft

+0

senza la conversione (json_decode()): angular.js: 12520 SyntaxError: token imprevisto o in JSON nella posizione 1 su Object.parse (nativo) – Ariana

risposta

11

Invariabilmente, 99,9,999999 millions% del tempo si ottiene Unexpected token < in JSON as position 0 in errore, non ha ricevuto JSON dal server. Hai ricevuto un messaggio di errore HTML con il seguente json dopo.

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

Il leader < nel <p>... è dove l'errore proviene, perché questa è la posizione 0 (primo carattere).

Controllare i dati grezzi che tornano dal server e correggere qualsiasi errore/avvertimento che PHP sta sputando.

+0

Non ho bisogno di decodificare il file JSON per json né di analizzarlo. – Ariana

2

Si prega di controllare il file PHP. In questo potrebbe essere echo indesiderato è presente in modo che la risposta JSON non potrebbe ottenere la risposta esatta. Risolvo il mio problema in questo modo. Spero che questo sia utile !!

Problemi correlati