ryb*_*ome 7 ajax json drupal drupal-7
我想在本地实现一个简单的AJAX函数,它允许我在用户输入时自动完成已存在节点的节点标题.为此,我需要能够拥有可以在节点标题上搜索的API.问题是当我输出原始JSON时,它被标签包围.所以,无论我做什么,我都会......
<html>
<head>
</head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我已经尝试实现一个只能输出内容的自定义页面模板,它会产生相同的结果.以下是我目前在模块文件中执行此操作的方法...
<?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);
}
Run Code Online (Sandbox Code Playgroud)
如何返回JUST原始JSON?
'Drupal'方式正在使用drupal_json_output()和drupal_exit().
$data = db_query("SELECT nid,title FROM {node} WHERE title LIKE :title LIMIT 5", array(":title" => $term.'%'))->fetchAll();
drupal_json_output($data);
drupal_exit();
Run Code Online (Sandbox Code Playgroud)
UPDATE
我只是把你的代码放到一个模块中,我在请求时获得的http://site.com/api是预期的JSON,没有标签.这个问题与Drupal无关,更可能与服务器/浏览器配置有关.
此链接可能有所帮助:
浏览器对json ajax响应的Content-Type标头需要什么?
| 归档时间: |
|
| 查看次数: |
9166 次 |
| 最近记录: |