2 votes

Téléchargement de fichiers Iframe et plugin NoScript

J'ai un formulaire avec téléchargement de fichiers par ajax. Javascript crée une iframe avec un formulaire, déplace l'entrée avec le fichier dans le formulaire et soumet le formulaire.

Cela fonctionne sans problème, mais le plugin populaire NoScript de Firefox pense qu'il s'agit d'un XSS et transforme ma requête POST en GET. Cela ne fonctionne donc pas. Existe-t-il une possibilité de contourner ce problème ?

Code (utilise 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"));
})

2voto

user27596 Points 3

Ce n'est pas une correction de code mais j'utilise ceci plugin de formulaire jQuery pour faire du téléchargement par ajax. J'ai testé le échantillon avec Firefox et NoScript installés, tout fonctionnait bien.

Si vous ne souhaitez pas utiliser un plugin personnalisé, jetez un coup d'œil à l'outil code source pour voir comment c'est fait.

0voto

Eric Yin Points 1866

Je vous suggère d'afficher un simple formulaire de dossier à <noscript> Puisque script a été désactivé, vous ne pouvez pas résoudre le problème en utilisant plus de script.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X