J'aimerais implémenter une simple fonction AJAX localement qui me permet de compléter automatiquement les titres de nœuds de nœuds déjà existants en tant que types d'utilisateurs. À cette fin, j'ai besoin de pouvoir disposer d'une API que je peux rechercher sur les titres des nœuds. Le problème est que lorsque je génère du JSON brut, il est entouré de balises. Donc, peu importe ce que je fais, je continue de recevoir ...
<html>
<head>
</head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre>
</body>
</html>
J'ai essayé d'implémenter un modèle de page personnalisé qui ne produit déjà que du contenu, qui a produit les mêmes résultats. Voici comment je fais actuellement cela, dans mon fichier de module ...
<?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);
}
Comment puis-je retourner JUST raw JSON?
drupal_json_output
fonction. Voir ici ou là pour des exemples de travail.