У меня проблема при анализе json от php до javascript
это мой пример кода:
//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
как решить эту проблему, я попробовал решение, которое я нашел в SO и Google, но до сих пор не могу решить эту проблему
пожалуйста, помогите
благодаря
Функция $ .ajax () jQuery даст объект JavaScript, если ответ будет JSON, поэтому я считаю, что ошибка, которую вы видите, является результатом попытки проанализировать объект JavaScript, а не строку, как вы ожидаете. В JSON.parse
который вы предоставляете done
функции, проверяйте data
и вы обнаружите, что это объект, и нет необходимости в JSON.parse
result.