如何创建正确的PHP json响应

时间:2015-01-21 10:14:24

标签: javascript php jquery ajax json

你好我有一个页面可以在json中使用jquery来调用ajax页面。 我刚刚设置

dataType: "json"

在ajax调用中我在php中设置标题

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

但是当我尝试在客户端阅读我的回复时,我有这个错误:

  

SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符

     

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?非常感谢你

1 个答案:

答案 0 :(得分:2)

jQuery会自动为您解析JSON响应 - 您不需要再次执行此操作。返回的ris对象已准备就绪,可以按原样使用。假设请求有效,则PHP响应的格式没有问题。

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