我想问一下可以创建一个输出JSON数据的页面作为对Jquery Ajax请求的响应吗?
以非drupal的方式,我只想创建一个php文件,例如mypage.php然后我会使用http://example.com/mypage.php?foo=bar作为我的AJAX请求的URL。然后,该页面将使用json_encode()输出JSON数据。
我怎么能以Drupal方式做到?
答案 0 :(得分:36)
scott reynen提示的一个工作示例:在drupal 7中, 在名为mymodule的模块中,写
function mymodule_menu() {
$items['fancystuff/json'] = array(
'access callback' => true, // available to all
'page callback' => 'mymodule_fancystuff_object', // defined below
'delivery callback' => 'drupal_json_output'
);
return $items;
}
function mymodule_fancystuff_object() {
return array('test'=>true,'dummy'=>array(0,1));
}
清除你的缓存,转到http://example.com/fancystuff/json并注意
答案 1 :(得分:21)
JSON server module为您提供节点的JSON输出。
如果您想要更多自定义JSON,可以使用hook_menu()创建新的菜单回调(基本上是指向函数的URL路径),然后使用:
在该回调中将输出作为JSON而不是默认HTML发送。