dojo.io.iframe erroring при загрузке файла

Поразите интересную проблему сегодня при попытке загрузить файл изображения <2 МБ с помощью dojo.io.iframe.

Моя функция для обработки формы вызвана, но прежде чем форма отправляется на сервер, я получаю следующую ошибку:

TypeError: ifd.getElementsByTagName ("текстовая область") [0] не определен

Моя функция, которая привыкла к действию сообщение формы:

function uploadnewlogo(){

var logoDiv = dojo.byId('userlogo');
var logoMsg = dojo.byId('uploadmesg');

//prep the io frame to send logo data.
dojo.io.iframe.send({
    url: "/users/profile/changelogo/",
    method: "post",
    handleAs: "text",
    form: dojo.byId('logoUploadFrm'),
    handle: function(data,ioArgs){

        var response = dojo.fromJson(data);


        if(response.status == 'success'){

            //first clear the image
            //dojo.style(logoDiv, "display", "none");
            logoDiv.innerHTML = "";

            //then we update the image
            logoDiv.innerHTML = response.image;

        }else if(response.status == 'error'){

            logoMsg.innerHTML = data.mesg;

        }else{              

            logoMsg.innerHTML = '<div class="error">Whoops! We can not process your image.</div>';
        }

    },
    error: function(data, ioArgs){

        logoMsg.innerHTML = '<div class="error">' + data + '</div>';

    }
});

}

Форма является очень простой только с входным компонентом Файла и простой кнопкой, которая называет этот бит JavaScript и додзе.

У меня есть очень похожий код в моем приложении, которое загружает документы слова/PDF, и это не делает ошибки, но по некоторым причинам это делает.

Какие-либо идеи или указатели на том, что я должен попытаться заставить это работать без ошибок?

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

Большое спасибо,

Предоставление

5
задан Grant Collins 2 April 2010 в 10:13
поделиться

2 ответа

Поскольку обработчик нагрузки dojo.io.iframe.send () был запущен, запрос должен быть отправлен на сервер и ответ вернулся. Я думаю, что ответ сервера неверен. Возможно, сервер возвращает страницу с ошибкой.

Используйте Firebug, чтобы проверить DOM текущей страницы, найти транспортный iframe, созданный Dojo, и проверить его содержимое. Firebug также может захватывать ввод-вывод iframe, проверьте его вкладку Net. Вы можете найти основную причину этой проблемы.

1
ответ дан 15 December 2019 в 00:55
поделиться

Вы соблюдали ограничение, записанное в документе ?

ВАЖНО: Для всех значений, ЗА ИСКЛЮЧЕНИЕМ html и xml, ответ сервера должен быть файлом HTML с элементом textarea. Данные ответа должны быть внутри элемента textarea. Использование HTML-документа - единственный надежный кроссбраузерный способ, которым этот транспорт может узнать, когда ответ загружен. Для mimetype text / html (или XML) просто верните обычный HTML / XML-документ. Другими словами, ваши службы для форматов JSON и Text должны возвращать данные в следующей упаковке:

0
ответ дан 15 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: