Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用JSON编码和JSON编码,使用jQuery ajax调用返回空对象_Php_Javascript_Jquery_Json - Fatal编程技术网

在PHP中使用JSON编码和JSON编码,使用jQuery ajax调用返回空对象

在PHP中使用JSON编码和JSON编码,使用jQuery ajax调用返回空对象,php,javascript,jquery,json,Php,Javascript,Jquery,Json,我使用PHP PEAR类将数组编码为JSON字符串,然后在响应中回显,如下所示: $.ajax({ url: '/ajax/get_rule.php', dataType: 'json', data: { feature : feature, ajax : 1

我使用PHP PEAR类将数组编码为JSON字符串,然后在响应中回显,如下所示:

            $.ajax({
                url: '/ajax/get_rule.php',
                dataType: 'json',
                data: {                 
                    feature : feature,
                    ajax : 1
                },
                success: function(resp) {
                    console.log('in here');
                    console.log('response: ' + resp);

                },
                error : function() {
                    console.log('there was an error...');
                }
            }); 
在上面的示例中,
Registry('json')
是一个
Services\ujson
对象

我还尝试了PHP内置函数
json\u encode

echo Registry('json')->encode(array('ajax' => 1, 'feature' => 'rfc1872'));
exit;
这两种方法都不起作用,尽管我没有陷入上述jQuery ajax调用中的错误回调,但我在Firebug中得到了一个空对象的响应值
response:[object object]


为什么我不会收到带有JSON编码字符串的jQuery代码的响应?

正如Felix King在上面的评论中所提供的,这实际上是由于将
resp
转换为带有以下内容的字符串造成的:

echo json_encode(array('ajax' => 1, 'feature' => 'rfc1872'));
exit;       
改为:

console.log('response: ' + resp)

解决了问题。

你怎么知道它是空的?我没有看到您将其记录到控制台<代码>控制台日志('响应:'+resp)将首先将对象转换为字符串,并且对象的默认字符串表示形式是
“[对象对象]”
,无论它是否具有属性。什么是
console.log(resp)给你看?如果您没有得到JSON作为响应,我相信成功回调甚至不会被执行。哦,gawd,这就是它。我更改了
console.log('response:'+resp)
控制台日志(resp)如您所建议,对象将正确通过。非常感谢,你可以提交作为一个答案,我会很高兴地接受。谢谢你指出这一点。
console.log(resp);