PHP脚本如何向Dojo的xhrGet发送JSON Ajax响应?

时间:2011-09-26 22:52:47

标签: php ajax json dojo

我刚刚开始使用dojo,我正在通过xhrGet在dojo中使用Ajax。

据我所知,无论你在PHP中“回应”是什么,都是作为Ajax结果返回的,但是这如何与JSON一起工作?

PHP脚本是否会回显从xhrGet调用的函数直接访问的javascript代码?

我正在尝试让PHP脚本从数据库中检索数据,填充三个数组,并在我的javascript代码中使用xhrGet。

谢谢!

2 个答案:

答案 0 :(得分:2)

在回显之前用PHP设置标题:

<?php
    header('Content-type: application/json');
    echo '{"myJsonKey":"myJsonVal"}';

对于您的具体情况,您可以这样做:

<?php
    $my_records_array = fetch_records($some_criteria);
    $my_records_json  = json_encode($my_records_array);

    header('Content-type: application/json'); 
    echo $my_records_json;

答案 1 :(得分:0)

大多数JavaScript库围绕AJAX请求包装回调。我不确定Dojo,但jQuery在发送时会在URL中添加一个回调参数。

然后,当服务器响应时,它会触发调用你的回调来处理结果的回调。

对于实际的服务器端东西,服务器通常只打印JSON编码的字符串并传递额外的标题,让浏览器知道它是什么类型的内容。

<?php
$rows = $db->fetch($sql);

header('Content-type: application/json');
print json_encode($rows);
?>