2015-01-07 2 views
1

У меня есть проблема при обработке JSON из PHP для яваскриптаразбор ошибка JSON: SyntaxError: JSON.parse: неожиданный символ в строке 1 колонка 2 данных в формате JSON

это мой пример код:

//function 
MethodAjax = function (wsFile, param) { 
    return $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: '../proses/' + wsFile + ".proses.php", 
     data: 'param='+param, 
     error: function (msg) { 
      return; 
     }, 
    }); 
}; 

//call function 
$(document).ready(function() { 

    $('#getproduk').click(function(){ 
     var param = { 
     ProdukId : '1', 
     ProdukName : 'test' 
    }; 

    CallMethodWithAjax('try', JSON.stringify(param)).done(function(data){ 
     $data = JSON && JSON.parse(data) || $.parseJSON(data); 
    }); 
}); 

//Simple Php code 
<?php 
    $data = $_POST['param']; 

    $data = (json_decode($data)); 

    $data1['name'] = $data->ProdukName; 
    $data1['id'] = $data->ProdukId; 
    $data1['test'] = 'test'; 


    echo json_encode($data1); 
?> 

//post, response and error at console 
response : {"name":"test","id":"1","test":"test"} 
post : param {"ProdukId":"1","ProdukName":"test"} 
error : SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data 

как решить эту проблему probled, я имею попробовать решение, которое я нашел в SO и Google, но до сих пор не может решить эту проблему

пожалуйста кто-нибудь помочь

благодаря

ответ

2

Функция jQuery's $.ajax() даст объект JavaScript, если ответ будет JSON, поэтому я считаю, что ошибка, которую вы видите, является результатом попытки проанализировать объект JavaScript, а не строку, как вы ожидаете. В обратном вызове, который вы предоставляете функции done, проверьте data, и вы обнаружите, что это объект, и нет необходимости в JSON.parse результате.

+0

этот труд thaanks – Hans

Смежные вопросы