2

ajaxファイルをアップロードするフォームがあります。Javascriptは、フォームを使用してiframeを作成し、ファイルを含む入力をフォームに移動して、フォームを送信します。

これは問題なく機能しますが、Firefoxで人気のあるNoScriptプラグインは、それが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"));
})
4

2 に答える 2

2

これはコードの修正ではありませんが、このjQuery フォーム プラグインを使用して ajax アップロードを行います。Firefox と NoScript をインストールしてサンプルをテストしましたが、すべて正常に動作しました。

カスタム プラグインを使用したくない場合は、ソース コードを参照して、その方法を確認してください。

于 2011-12-07T21:45:36.300 に答える
0

で簡単なファイル フォームを表示することをお勧めします。<noscript>スクリプトがオフになっているため、これ以上スクリプトを使用しても問題を解決できません。

于 2011-12-14T06:37:12.823 に答える