AJAX:使用多个表单条目删除多个服务器文件

时间:2012-09-25 18:12:02

标签: javascript ajax

我有一个包含可变数量文本框的表单,其中包含一个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;

1 个答案:

答案 0 :(得分: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;

让我知道你的发现

相关问题