Ошибка загрузки файлов через Ajax в Firefox

Что имеем:

Плагин 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()));
})

И это решило проблему.

Random Posts

  • Geany небольшая пополняемая заметка о приемах и тонкостях

    Geany под Ubuntu я нашел как весьма вменяемую замену Notepad++ под Linux, который к великому сожалению работает только под Windows, […]

  • CMS на базе Yii Framework

    Хотелось бы написать обзор на эту тему, но писать не про что, так как CMS на Yii можно пересчитать по […]

  • MySQL error USING BTREE

    Только начинаю понимание этой проблемы. При импорте дампов сделанных через СУБД (phpMyAdmin, adminer.php) или ssh-командой возникает ошибка в районе строки […]

  • Обрезка текста и строк в php

    Это очень часто выполняемая операция при работе с php. Делается обрезка строки очень просто — есть функция substr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*
*