【问题标题】:how to create correct PHP json response如何创建正确的 PHP json 响应
【发布时间】:2015-03-19 19:35:00
【问题描述】:

你好,我有一个页面可以用 jquery 调用 json 中的 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?非常感谢

【问题讨论】:

  • 也许其中一个 PHP 文件会在您的 JSON 响应之前生成输出?
  • 对其他浏览器使用 firebug (FF) 或等效的 Web 开发人员工具。在那里你可以看到真正的反应。

标签: javascript php jquery ajax json


【解决方案1】:

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

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

【讨论】:

  • 非常感谢!如果我尝试使用 dataType 文本,我可以测试响应是否为正确的 json。你的回答完美;)
猜你喜欢
  • 2023-02-21
  • 1970-01-01
  • 2021-11-04
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多