Проблема с Views Ajax для pager

Главные вкладки

Аватар пользователя BassEast BassEast 16 сентября 2010 в 11:29

Привет всем.
Во Views завёл вьюшку, вида "Блок", в настройках включил Ajax, использую pager. Захожу на страницу, где выводится этот блок, нажимаю на следующую страницу, ничего не происходит и FireBug пишет JS ошибку:

Drupal.Views.Ajax.handleErrors is not a function
[Break on this error] error: function(xhr)...ews-throbbing', object).remove(); },
/sites/all/modules/views/js/ajax_view.js?E (строка 156)
reps.breakOnThisError has not source file for error.href: http://fg/sites/all/modules/views/js/ajax_view.js?E
Drupal.Views.Ajax.handleErrors is not a function
[Break on this error] error: function(xhr)...ews-throbbing', object).remove(); },
/sites/all/modules/views/js/ajax_view.js?E (строка 156)

Может быть кто-то встречался с такой же проблемой, Google не помог.. увы.

Комментарии

Аватар пользователя alexweb alexweb 16 сентября 2010 в 12:16

Посмотрите, включается ли файл sites/all/views/js/ajax.js

Именно он содержит определение Drupal.Views.Ajax.handleErrors
Попробуйте сбросить кэш.

Аватар пользователя BassEast BassEast 16 сентября 2010 в 12:29

Да, файл подключается:
<script type="text/javascript" src="/sites/all/modules/views/js/ajax_view.js?E"></script>

Кеш сбросил, но ошибка осталась.

блин, 3 раза записался комментарий.. извините.

Аватар пользователя BassEast BassEast 16 сентября 2010 в 12:26

Да, файл подключается:
<script type="text/javascript" src="/sites/all/modules/views/js/ajax_view.js?E"></script>

Кеш сбросил, но ошибка осталась.

Аватар пользователя BassEast BassEast 16 сентября 2010 в 12:28

Да, файл подключается:
<script type="text/javascript" src="/sites/all/modules/views/js/ajax_view.js?E"></script>

Кеш сбросил, но ошибка осталась.

Аватар пользователя kratkar kratkar 19 сентября 2010 в 20:09

если появиться ошибка с parseerror, то надо поменять в функции drupal_to_js(common.php)
вместо

<?php
return '"'str_replace(array("\r""\n""<"">""&"),
                              array(
'\r''\n''\x3c''\x3e''\x26'),
                              
addslashes($var)) .'"';
?>

строка 2399 на

<?php
    $replace_pairs 
= array(
        
// ", \ and U+0000 - U+001F must be escaped according to RFC 4627.
        
'\\' => '\u005c',
        
'"' => '\u0022',
        
"\x00" => '\u0000',
        
"\x01" => '\u0001',
        
"\x02" => '\u0002',
        
"\x03" => '\u0003',
        
"\x04" => '\u0004',
        
"\x05" => '\u0005',
        
"\x06" => '\u0006',
        
"\x07" => '\u0007',
        
"\x08" => '\u0008',
        
"\x09" => '\u0009',
        
"\x0a" => '\u000a',
        
"\x0b" => '\u000b',
        
"\x0c" => '\u000c',
        
"\x0d" => '\u000d',
        
"\x0e" => '\u000e',
        
"\x0f" => '\u000f',
        
"\x10" => '\u0010',
        
"\x11" => '\u0011',
        
"\x12" => '\u0012',
        
"\x13" => '\u0013',
        
"\x14" => '\u0014',
        
"\x15" => '\u0015',
        
"\x16" => '\u0016',
        
"\x17" => '\u0017',
        
"\x18" => '\u0018',
        
"\x19" => '\u0019',
        
"\x1a" => '\u001a',
        
"\x1b" => '\u001b',
        
"\x1c" => '\u001c',
        
"\x1d" => '\u001d',
        
"\x1e" => '\u001e',
        
"\x1f" => '\u001f',
        
// Prevent browsers from interpreting these as as special.
        
"'" => '\u0027',
        
'<' => '\u003c',
        
'>' => '\u003e',
        
'&' => '\u0026',
        
// Prevent browsers from interpreting the solidus as special and
        // non-compliant JSON parsers from interpreting // as a comment.
        
'/' => '\u002f',
        
// While these are allowed unescaped according to ECMA-262, section
        // 15.12.2, they cause problems in some JSON parser.
        
"\xe2\x80\xa8" => '\u2028'// U+2028, Line Separator.
        
"\xe2\x80\xa9" => '\u2029'// U+2029, Paragraph Separator.
      
);

      return 

'"'strtr($var$replace_pairs) .'"';
?>

Это с d7 патча.

+ строка 2536 заменить на drupal_set_header('Content-Type: application/json;');
я понимаю что это ядро))

Аватар пользователя divined divined 1 сентября 2011 в 16:50

Это не решает проблему!

Теперь JSON ответ вместо того чтобы вставляться на страницу выводится в блок alert();
Без какого либо указания ошибки. Причем делает это через раз. Т.е. При переходе на след страницу вьюхи может показать результат выведя JSON ответ на страница, а может вывести через Алерт его исходники.

Как узнать все-таки причину ошибки.