serverData не возвращается правильно в Internet Explorer - swfupload и рельсы

Мы используем SWFUpload для одной из наших форм, чтобы люди могли загружать медиа. Как только SWFUpload отправляет событие uploadSuccess, мы получаем данные и URL-адрес файла из serverData, которые передаются обратно при отправке события.

В настоящее время в IE событие отправляется, но не похоже, что информация сохраняется - наши скрытые поля, в которые мы помещаем данные сервера, пусты. Возможно, событие зависает и отправляется слишком рано, а затем данные сервера все еще пусты.

Конкретная функция, которая должна захватывать и сохранять данные:

.bind('uploadSuccess', function(event, file, serverData){
    var swfu = $.swfupload.getInstance('#swfupload-control');
    try {
        file.id = "singlefile";
        if (serverData === " " || serverData === null) {
            swfu.customSettings.upload_successful = false;
        } else {
            swfu.customSettings.upload_successful = true;
            document.getElementById("hidFileID").value = serverData;
        }
    } catch (ex) {
        swfu.debug(ex);
    }
})

Если serverData пуст, возможно ли проверить эти данные еще раз с помощью функции обработчика событий?

1 ответ

Решение

FWIW, это невозможно, потому что это функция обработчика событий, что я и предполагал.

Здесь есть интересная возможность использования GET вместо POST для лучшей кросс-браузерной совместимости: SWFUpload работает в IE, но не в Firefox, однако, я загружаю в S3, так что решение невозможно.

Я пытаюсь запустить Uploadify и посмотреть, что там происходит.

ОБНОВЛЕНИЕ:

Я переключился на Uploadify, но проблема не была связана с драгоценными камнями. Данные были возвращены для IE. Тем не менее, эта строка:

document.getElementById("hidFileID").value = serverData;

помещал serverData, который является строкой разметки XML, в скрытый <input> тег. IE не разрешал этого, потому что входной тег не является блочным элементом, поэтому вы не можете вставить разметку в неблокированные элементы.

Firefox и Chrome "простят" это, но IE на самом деле здесь прав.

Я закончил анализом serverData в javascript и вставил нужную мне строку (url) из данных в скрытое поле ввода, и все заработало.

Другие вопросы по тегам