Почему мой json-объект из AJAX не понят javascript, даже с 'json' dataType? - PullRequest
0 голосов
/ 03 апреля 2010

Мой js-код просто получает объект json с моего сервера, но я думаю, что он должен автоматически анализироваться и превращаться в объект со свойствами, но при этом он не разрешает доступ должным образом.

    $.ajax({
      type: 'POST',
      url: '/misc/json-sample.js',
      data: {href: path}, // THIS IS THE POST DATA THAT IS PASSED IN; safe2ignore.
      dataType: 'json',
      success: function (datax) {

  if (datax.debug) {
    alert('Debug data: ' + datax.debug);
  }  else {
         alert('No debug data: ' + datax.toSource()  ) ; 
      }

Файл /misc/json-sample.js: [{"path": "examplemodule / parent1 / child1 / grandchild1", "title": "Параметр первого внука", "debug": "Параметр первого внука" , "children": false}]

(Я также пытался вернуть этот объект из друпала следующим образом, и результаты те же.) Drupal версия misc / json-sample.js:

 $items[] = array(
      'path' => 'examplemodule/parent1/child1/grandchild1',
      'title' => t('First grandchild option'),
          'debug' => t('debug me!'),
      'children' => FALSE
    );
    print  drupal_to_js($items);

Что происходит (в FF, который имеет возможность toSource ()), это предупреждение с «Нет данных отладки: [{путь:« examplemodule / parent1 / child1 / grandchild1 », title:« First grandchild option », debug: "Первый вариант внука", дети: ложь}] ' Спасибо

1 Ответ

2 голосов
/ 03 апреля 2010

Вам необходимо установить заголовок Content-Type на application / json.

header("Content-Type: application/json");
print  drupal_to_js($items);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...