Загрузка файла Iframe и плагин NoScript - PullRequest
2 голосов
/ 03 декабря 2011

У меня есть форма с загрузкой файла ajax. Javascript создает iframe с формой, перемещает ввод с файлом в форму и отправляет форму.

Это работает без проблем, но популярный плагин NoScript в Firefox считает, что это XSS, и превращает мой запрос POST в GET. Так что это не работает. Есть ли возможность обойти эту проблему?

Код (использует jQuery)

function add_input_file(div) {
  var input = $("<input>").attr("type", "file").attr("name", "file");
  input.appendTo(div);
  input.change(function() {
    $(this).off();
    var iframe = $("<iframe>");
    iframe.appendTo($("body"));
    iframe.load(function() {
      $(this).off();
      var input = $(this).data("input");
      var form = $("<form>").attr("method", "post").attr("action", "/send").attr("enctype", "multipart/form-data").attr("accept-charset", "UTF-8");
      form.appendTo($(this).contents().find("body"));
      input.appendTo(form);
      add_input_file($("#att"));
      form.submit();
    });
  });
}
$(function() {
  add_input_file($("#att"));
})

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Это не исправление кода, но я использую этот плагин формы jQuery для загрузки ajax. Я протестировал образец с установленными Firefox и NoScript, все работало нормально.

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

0 голосов
/ 14 декабря 2011

Я предлагаю вам отобразить простую форму файла на <noscript>, так как скрипт отключен, вы не можете решить проблему, используя больше скриптов.

...