Я пытаюсь создать приложение EXTJS для отправки электронной почты с вложением. Итак, у меня есть очень простая форма, которая включает текстовое поле для темы, другое текстовое поле с inputType: 'file' для вложения и html-редактор.
var panel = new Ext.form.FormPanel({
fileUpload:true,
labelAlign: 'right',
monitorValid: true,
border: false,
bodyBorder: false,
defaults:{
anchor: '100%',
labelStyle: 'font-weight:bold;'
},
items: [
{
xtype: 'textfield',
fieldLabel: 'SUBJECT',
name: 'subject',
allowBlank: false
},
{
xtype: 'textfield',
fieldLabel: 'ATTACHMENT',
name: 'file_to_upload',
anchor: '80%',
itemCls: 'attachment-field',
allowBlank: true,
inputType:'file'
},
{
xtype: 'htmleditor',
fieldLabel:'MESSAGE',
name:'msg'
}
]
});
И эта форма размещается в окне, которое будет отправлено на сервер:
var window = new Ext.Window({
title: 'Compose a message',
height: 600,
width: 800,
autoScroll: true,
border: false,
bodyBorder: false,
items: panel,
buttons:[
{
text: 'Send',
formBind: true,
handler: function() {
panel.getForm().submit({
url: *Call to the server*,
method : 'POST',
timeout: 300000, // 5min
waitMsg: 'Please wait while we send your email',
success :function(form, action) {
window.close();
}
});
}
},
{
text: 'Close',
handler: function() {
window.close();
}
}
]
});
И все прекрасно работает, когда я отправляю форму на сервер, используя FF. Но проблема возникает с IE8. IE показывает панель безопасности, говоря, что я пытаюсь загрузить файл на компьютер, что совершенно противоположно тому, что я делаю (я загружаю файл)!
Как я могу предотвратить срабатывание этой панели безопасности?
- РЕДАКТИРОВАТЬ 18 декабря 2010 г. 16:48 EST--
Возможно ли, что это может быть вызвано этим: (исходя из документации EXTJS basicForm)
Загрузка файлов не выполняется с использованием обычных методов Ajax, то есть они не выполняются с использованием запросов XMLHttp. Вместо этого форма отправляется стандартным способом с временно измененным элементом DOM, чтобы его цель была установлена для ссылки на динамически сгенерированный скрытый элемент, который вставляется в документ, но удаляется после сбора возвращаемых данных. Ответ сервера анализируется браузером для создания документа для IFRAME. Если сервер использует JSON для отправки возвращаемого объекта, то заголовок Content-Type должен быть установлен на «text / html», чтобы указать браузеру вставлять текст без изменений в тело документа. Символы, которые важны для анализатора HTML, должны отправляться как объекты HTML, поэтому кодируйте «<» как «<», «&» как «&» и т. Д. Текст ответа извлекается из документа и создается поддельный объект XMLHttpRequest содержащий свойство responseText для соответствия требованиям обработчиков событий и обратных вызовов. Имейте в виду, что пакеты загрузки файлов отправляются с типом содержимого multipart / form, и некоторые серверные технологии (особенно JEE) могут требовать некоторой пользовательской обработки для получения имен параметров и значений параметров из содержимого пакета. </p>
Не думаю, что я все понимаю в объяснении ...
- КОНЕЦ РЕДАКТИРОВАНИЯ -
Спасибо
Alain