Почему вывод 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;
}
 4
Author: Joren, 2012-01-28

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-адресом.

 7
Author: Clive, 2012-01-28 01:25:04