基本上我正在制作一个简单的ajax请求
function upload(){ setInterval(function callMeOften() { $.ajax({ method: 'get',url : 'uploadinfo.PHP?unique_id=<?PHP echo $some_uniq_id; ?>',dataType : 'text',success: function(text){ updatebar(text); },error: function (XMLHttpRequest,textStatus,errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.responseText); } }); },5000); } function updatebar(per){ $('#updateMe').animate({"width" : per}); }
$unique_id = $_GET['unique_id']; $progress = uploadprogress_get_info($unique_id); if(function_exists("uploadprogress_get_info")) { if (floor(($progress['bytes_total']/1024)/1024) > 100){ echo "run"; } else { if ($progress['bytes_uploaded'] == 0 || $progress['bytes_total'] == 0){ echo "100"; } else { echo floor($progress['bytes_uploaded'] / $progress['bytes_total'] * 100); } }
}
这个函数upload();使用onsubmit()调用;文件上传表单的操作
<form id="something" onsubmit="upload();" action="status.PHP" enctype="multipart/form-data" method="post">
我使用相对路径,请求在FF和IE中工作,但在chrome,safari和opera中,ajax请求甚至在上传过程中都没有被触发.
这是怎么回事?
编辑:最后我只是在一个单独的窗口中显示上传进度,该窗口是使用onsubmit操作创建的,并重新调整大小并重新定位到屏幕中心,看起来不错,是迄今为止最简单的方法