Что имеем:
Плагин ajaxForm для отправки форм через Ajax
Firefox 10.0.2
Столкнулся с такой вот ошибкой:
uncaught exception: [Exception… «Security error» code: «1000» nsresult: «0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)» location: «xxx»]
Долго не мог разобраться в чем дело, потому как в консоли была совершено непонятная строка, в которой показывалась ошибка.
Для получения ответа сервера уже использовалась конструкция
<code><textarea>{ "my": "response" }</textarea></code>
Включение опции iframe у плагина не помогало.
Ошибка вообще не редкая на самом деле, но тут косяк был мой: перед отправкой формы я декодировал данные для передачи (из-за разных кодировок) незателивым скриптом:
1 2 3 $($form).find('input').each(function(){ $(this).val(encodeURIComponent($(this).val())); })
Хром не ругался на это и я думал, что все в порядке, пока не попробовал загрузить файл через firefox.
Это ни в коем случае не баг, просто манипулировать с данными из input type=file нельзя, потому я просто модифицировал скрипт:
1 2 3 $($form).find('input[type="text"]').each(function(){ $(this).val(encodeURIComponent($(this).val())); })
И это решило проблему.