AJAX поле загрузки файлов в Opera 10: давайте разберёмся, наконец...

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

Аватар пользователя OldWarrior OldWarrior 18 октября 2010 в 11:27

Судя по всему, проблема реально стара, как мир. Но и достала уже реально.

Суть вопроса. В Opera 10 при попытке отправить на загрузку список файлов из AJAX поля загрузки возникает ошибка JavaScript:

An HTTP error 0 occurred.
/upload/js

или же (в зависимости от модуля, использующего поле загрузки):

An HTTP error 0 occurred.
/gallery_assist/js

После чего анимированный индикатор загрузки тупо отваливается, хотя загрузка при этом продолжается (видно по трафику). А вот после нажатия кнопки "Сохранить" на страницу вываливается внушительный фрагмент кода. Хотя изображения из списка в итоге оказываются всё-таки загруженными и привязанными к документу.

Проблема описана также:
http://www.drupal.ru/node/14290 (отличается только сообщением об ошибке)
и в http://faq.drupal.ru/node/38443

Что я имею:
Opera 10.01
Drupal 6.19
Модули: slideshow, gallery_assist

Предлагаемые решения по ссылкам выше (обновление jquery.form.js и т.д.) ни к чему не привели, как и полное обновление jquery (с помощью модуля jQuery Update, http://drupal.org/project/jquery_update).

Забить на проблему нельзя, у заказчика Опера любимый браузер.
Сам уже голову сломал, больше не могу об этом думать.
А ведь какое-то лекарство должно быть, я знаю.

У кого какие соображения?

Комментарии

Аватар пользователя OldWarrior OldWarrior 18 октября 2010 в 15:11

Это просто оборжака.
Похоже, жертвами монстра "HTTP error 0" стали тысячи людей:

http://drupal.org/node/612754
http://drupal.org/node/226653
http://drupal.org/node/473760
http://drupal.org/node/434394
http://drupal.org/node/297460
http://drupal.org/node/297035
http://drupal.org/node/646694

Любопытно, что одни и те же решения помогают одним и бесполезны для других. Что там только народ ни предлагает, включая ковыряние настроек PHP (хотя при чем здесь Опера мне непонятно) Smile

У меня проблема таки решилась установкой двух модулей:
- jQuery Form Update
- JS Alter

После чего проблема в Опере 10 исчезла. Не знаю, как в других версиях и в другом окружении. Smile Опять-таки непонятно, почему непосредственное обновление библиотеки jquery.forms.js ранее не помогло.

Аватар пользователя Chupzzz Chupzzz 19 октября 2010 в 1:32

В свое время тоже изрядно поломал голову над этой проблемой. Но у меня это было в FF при включенном фаербаге. Выключишь его - все нормально Smile Т.е. очевидно, что в js где-то дыры.

Но проблема есть, она стара и до сих пор иногда вылезает. Надеюсь, в Д7 ее навсегда уберут!

Аватар пользователя Wscript Wscript 6 ноября 2010 в 23:33

Лично у меня это ошибка возникла при загрузки изображения большого разрешения к примеру 2481х3508 во всех браузерх без исключения.
Перепробывал все выше описанные способы в итоге случайно загрузил другое изобржения меньшего разрешения и все заработало.

На локальной машине все работало ок возможно дело в настройках хостинга, но не уверен.

Аватар пользователя Cozmi Cozmi 7 января 2011 в 20:14

у мя таже проблема -- ничего не помогае
(~модуль Node Import~все браузеры)
проверьте js
An error occurred. (no information available).
(на самом деле всё окей, но прогрессбар не робит)

Аватар пользователя junior_developer junior_developer 10 августа 2012 в 17:09

У меня в 7 друпале в версии оперы 11.64 при загрузке файлов ~10mb и больше слетал прогресс бар и останавливалась загрузка файла (в 12 опере всё норм, но проблема в том, что у заказчика 11.64).

Модули jQuery Form Update и JS Alter только для 6 друпала, поэтому сразу перешел к решению проблемы с помощью модуля jQuery Update для 7-ки. Как оказалось зря - после его активации перестали подгружаться javascript'ы. Немного с ними побился - частично победил, но все равно не помогло - решил отложить на попозже и попробовать обновить jquery.form.js - и, как ни странно, для меня сработало Smile Качал отсюда: https://github.com/malsup/form/downloads. Заменял файл только в папке project_name/misc/. (jQuery Update предварительно отключил и удалил, js-ники вернулись)

Так что проблема всё ещё существует, хотя уже немного и не та, что раньше. Будем надеяться, что начиная с 12.00 оперы таких проблем не будет.

upd. Замена старого jquery.form.js на новый сломала часть функциональности, поэтому я заюзал хук hook_js_alter, с помощью которого подменял путь к jquery.form.js только на странице загрузки файлов.