2015-01-21 85 views
0

您好,我有一个页面可以在jQuery中使用jquery调用ajax页面。 我只设置如何创建正确的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); 
} 

和THI是一个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 2015-01-21 10:17:27

+0

使用萤火虫(FF)或其他浏览器的等效网页开发者工具。在那里你可以看到真实的回应。 – Marek 2015-01-21 10:25:22

回答

2

jQuery会自动为你解析一个JSON响应 - 你不需要再做一次。返回的ris对象已准备好让您按原样工作。假设请求有效,PHP响应的格式没有问题。

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

非常感谢! 如果我尝试一个dataType文本,我可以测试一个响应是否是一个正确的json。 你的答案工作正常;) – Valix85 2015-01-21 10:38:43