2015-01-21 2 views
0

Привет, у меня есть страница, которая может вызвать страницу ajax в json с jquery. я просто установитьКак создать правильный ответ PHP json

dataType: "json" 

в Ajax вызова и я установить заголовок в PHP

header("Content-type: application/json; charset=utf-8"); 

, но когда я пытаюсь прочитать мой ответ в клиенте у меня есть эта ошибка:

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

var o = JSON.parse(jsonString);

Для Дополнительная информация PHP файловая функция:

function _addToWishlist($v,$db){ 
$ris = array(); 
$data = array();  
$data[0]=20; 
$data[1]=25; 
$data[2]=30;  
$ris['stato']="1";  
$ris['mex']="DA IMPLEMENTARE!!!"; 
$ris['data']=$data; 
$ris['action']=""; 
ob_clean();  
echo json_encode($ris); 
} 

и Тхи является ответом PHP:

{"status":"success","stato":"1","mex":"DA IMPLEMENTARE!!!","data":[20,25,30],"action":""} 

в клиенте я использую этот JavaScript:

$.ajax({ 
       url: "common/function/include/dataLoad.php", 
       type: "POST", 
       data: datas, 
       async:false, 
       //dataType: "text", 
       dataType: "json", 
       success: function(ris) { 
         // Run the code here that needs 
         // to access the data returned 
         //$(this).parent 
         //alert (ris); 
         risp=ris; 

         //var a = JSON.parse(ris); 
         tryParseJSON(ris); 
         //return ris; 
       }, 
       error: function() { 
         alert('Errore di rete'); 
       } 

       }).done(function(){ 
         if(divwhere!=""){       
           $(divwhere).html(risp); 
           } 
         if(actionAfter!=""){ 
           eval(actionAfter); 
           } 

      }); 

функция для испытания JSON здесь: stackoverflow

как я могу сделать для создания правильный звонок json? Большое спасибо

+0

Возможно, один из задействованных файлов PHP генерирует выходные данные перед ответом JSON? – Jon

+0

Используйте firebug (FF) или аналогичные инструменты веб-разработчика для других браузеров. Там вы можете увидеть реальный ответ. – Marek

ответ

2

jQuery автоматически проанализирует ответ JSON для вас - вам больше не нужно это делать. Возвращаемый объект ris готов к работе с as-is. Предполагая, что запрос работает, нет проблем с форматом ответа PHP.

success: function(ris) { 
    console.log(ris.status); // = 'success' 
    console.log(ris.mex); // = 'DA IMPLEMENTARE!!!' 
}, 
+0

большое спасибо! Если я попробую текст dataType, я могу проверить, является ли ответ правильным json. ваш ответ хорошо работает;) – Valix85