我刚刚开始使用dojo,我正在通过xhrGet在dojo中使用Ajax。
据我所知,无论你在PHP中“回应”是什么,都是作为Ajax结果返回的,但是这如何与JSON一起工作?
PHP脚本是否会回显从xhrGet调用的函数直接访问的javascript代码?
我正在尝试让PHP脚本从数据库中检索数据,填充三个数组,并在我的javascript代码中使用xhrGet。
谢谢!
答案 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);
?>