我有一个包含可变数量文本框的表单,其中包含一个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;
答案 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;
让我知道你的发现