Почему вывод drupal json возвращает только HTML страницы?
Я пытаюсь заставить drupal возвращать некоторые отрисованные представления, которые я запрашиваю через ajax, но все, что он, похоже, хочет вывести, это то, что выглядит как отрисованная страница. Что я здесь делаю не так?
//Это запись тонны HTML-страниц
jQuery(function($) {
$.ajax({
url: 'fetch/explore/' . category,
success: function(data) {
console.log(data);
}
});
});
// Это из моего пользовательского модуля
function wdfm_menu() {
$items['fetch/explore/%'] = array(
'page callback' => 'fetch_explore_content',
'type' => MENU_CALLBACK,
'access arguments' => array('access content'),
'page arguments' => array(2)
);
return $items;
}
//В моем журнале ничего не отображается, поэтому я не уверен, что это вообще вызывается.
function fetch_explore_content($category) {
watchdog('blargh', 'something');
$data = array();
$data['test'] = 'test';
drupal_json_output($data);
exit;
}
1 answers
У вас ошибка в Javascript, вы пытаетесь использовать синтаксис PHP для объединения URL-адреса (символ .
). Как бы то ни было, вы JS вообще не должны работать, поэтому обратный вызов не вызывается. Ваш код модуля выглядит нормально. Просто измените свой JS на этот:
jQuery(function($) {
$.ajax({
url: 'fetch/explore/' + category, // + instead of .
success: function(data) {
console.log(data);
}
});
});
Просто для уточнения, если вызов ajax выполняется, несмотря на синтаксическую проблему, ответ HTML, который вы получаете, может быть страницей с ошибкой 404/403/500, вызванной неправильным URL-адресом.