ajax – 如何使用Drupal返回实际的JSON?
发布时间:2020-12-16 01:36:27 所属栏目:百科 来源:网络整理
导读:我想在本地实现一个简单的 AJAX函数,允许我在用户输入时自动完成现有节点的节点标题.为此,我需要能够拥有可以在节点标题上搜索的API.问题是当我输出原始 JSON时,它被标签包围.所以,无论我做什么,我都会…… html head /head body pre style="word-wrap: brea
我想在本地实现一个简单的
AJAX函数,允许我在用户输入时自动完成现有节点的节点标题.为此,我需要能够拥有可以在节点标题上搜索的API.问题是当我输出原始
JSON时,它被标签包围.所以,无论我做什么,我都会……
<html> <head> </head> <body> <pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre> </body> </html> 我已经尝试实现一个自定义页面模板,它只输出内容,产生相同的结果.以下是我目前在模块文件中执行此操作的方法… <?php /** * Implementation of hook_menu() */ function content_relation_menu() { $items = array(); $items['api'] = array( 'title' => 'Search','page callback' => 'content_relation_get','access callback' => TRUE,'type' => MENU_CALLBACK,); return $items; } function content_relation_get($term = '') { drupal_add_http_header('Content-Type','application/javascript; utf-8'); $var = json_encode( db_query("SELECT nid,title FROM {node} WHERE title LIKE :title LIMIT 5",array(":title" => $term.'%'))->fetchAll() ); echo $var; exit(0); } 如何返回JUST原始JSON?
‘Drupal’的方式是使用
drupal_json_output() 和
drupal_exit() .
$data = db_query("SELECT nid,array(":title" => $term.'%'))->fetchAll(); drupal_json_output($data); drupal_exit(); UPDATE 我只是把你的代码放到一个模块中,当我请求http://site.com/api是预期的JSON时,我得到的就是没有标签.这个问题与Drupal无关,更可能与服务器/浏览器配置有关. 此链接可能有所帮助: What do browsers want for the Content-Type header on json ajax responses? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |