В Internet Explorer данные сервера возвращаются некорректно - swfupload и rails - PullRequest
1 голос
/ 09 ноября 2011

Мы используем 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 Ответ

0 голосов
/ 10 ноября 2011

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) из данных в скрытое поле ввода, и все заработало.

...