Javascript 尝试通过AJAX调用JSON数据时出现TypeError

Javascript 尝试通过AJAX调用JSON数据时出现TypeError,javascript,php,jquery,Javascript,Php,Jquery,我试图将一些JSON数据从PHP页面传递到javascript,但它不起作用 PHP页面test call.PHP输出一些最小的测试数据,如下所示: <?php $username = 'MyValue'; $data = array('retid' => $username); echo json_encode($data); ?> 调用页面在中加载jquery,并推荐使用如下javascript: <script> $.ajax({ type: 'POST

我试图将一些JSON数据从PHP页面传递到javascript,但它不起作用

PHP页面
test call.PHP
输出一些最小的测试数据,如下所示:

<?php
$username = 'MyValue';
$data = array('retid' => $username);
echo json_encode($data);
?>

调用页面在
中加载jquery
,并推荐使用如下javascript:

<script>
$.ajax({
type: 'POST',
url: 'test-call.php',
dataType: 'json',
    success: function(response) {
        var retid = response.data.retid;
        console.log(retid);
    },
});
</script>

$.ajax({
键入:“POST”,
url:'test call.php',
数据类型:“json”,
成功:功能(响应){
var retid=response.data.retid;
控制台日志(retid);
},
});
但是,运行javascript会导致控制台描述为“的错误”

TypeError:undefined不是对象(评估'response.data.retid')


这里怎么了?

response
是数据,因此
response.data
是未定义的。您可以使用
response.retid访问数据:

<script>
$.ajax({
    type: 'POST',
    url: 'test-call.php',
    dataType: 'json',
    success: function(response) {
        var retid = response.retid;
        console.log(retid);
    },
});
</script>

$.ajax({
键入:“POST”,
url:'test call.php',
数据类型:“json”,
成功:功能(响应){
var retid=response.retid;
控制台日志(retid);
},
});

$.getJSON('test-call.php',function(response){console.log(response);});
下一步是查看控制台输出并从那里开始。但是,如果url有一个查询字符串使其能够在数据库中查找其值,我发现控制台中会显示404(如
test-call.php?id=123
)。是否可以更改代码以适应带有查询字符串的URL?实际上,我不确定是URL中存在查询字符串导致了404。看起来是test-call.php执行了DB查找。如果我不在test-call.php中执行DB查找,只需硬编码输出数据,AJAX调用就会工作。但是如果我允许test-call.php进行查找(无论我是否在AJAX代码中包含查询字符串),我得到了404。啊-抱歉-两者都不是。对于错误警报,抱歉-出于登录目的,它是test-call.php中一个不相关的未注释行。Syscall的代码工作正常。