0

ID を含む可変数のテキスト ボックスを含むフォームがあります。ユーザーがページを終了すると、サーバー上のファイルは Python スクリプト (delete.py) によって削除されます。削除するファイルのファイル名には ID が含まれているため、ID を Python スクリプトに渡す必要があります。私のフォームに単一の ID がある場合、すべてが完全に機能し、サーバー上のファイルは削除されます。フォームに複数の id フィールドがある場合、ファイルは削除されません。firebug を使用してコードをステップ実行すると、id フィールドの数に関係なくファイルが削除されます。何が起こっているのかわかりません。どんな助けでも大歓迎です。私の onbeforeunload メソッドは以下のとおりです。

function deleteFiles()
  {
  var xmlhttp;

  if (window.XMLHttpRequest)
  {
    xmlhttp=new XMLHttpRequest();
  }
  else
  {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }  

  allElements = document.getElementsByName("id");
  for (x=0; x < allElements.length; x++)
  {
    xmlhttp.open("GET","/cgi-bin/delete.py?id=" + allElements[x].value,true);
    xmlhttp.send();
   }  

window.onbeforeunload = deleteFiles;
4

1 に答える 1

0

リクエストの送信が速すぎるようです。
xmlhttp.async=false;を追加してみてください 。

function deleteFiles()
  {
  var xmlhttp;

  if (window.XMLHttpRequest)
  {
    xmlhttp=new XMLHttpRequest();

  }
  else
  {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }  

  allElements = document.getElementsByName("id");

  xmlhttp.async = false;

  for (x=0; x < allElements.length; x++)
  {
    xmlhttp.open("GET","/cgi-bin/delete.py?id=" + allElements[x].value,true);

    xmlhttp.send();
   }  

window.onbeforeunload = deleteFiles;

調査結果を教えてください

于 2012-09-25T18:43:44.317 に答える