我有下面的代碼之前:JQuery的阿賈克斯進入成功調用頁面完成
<script type="text/javascript">
$(function(){
$("#AddMaps").submit(function(){
var $form = $('#AddMaps');
$.ajax({
type: 'POST',
url: $form.attr('action'),
data: $form.serialize(),
dataType: "json",
beforeSend:function(){
// Set up Loading Image and disable submit button
$('#ajax-panel').html('<div class="loading"><img src="loader.gif" alt="Loading..." /></div>');
},
success:function(data){
// Successful Request; do something
$('#ajax-panel').empty();
if (data.response != "Success"){
$('#ajax-panel').append('Error Occurred' + data.response);
}
else {
$('#ajax-panel').append('File(s) Uploaded');
}
},
error:function(){
// Failed Request; Freak out
$('#ajax-panel').html('<p class="error"><strong>Oops!</strong> Try that again in a few moments.</p>');
}
});
});
});
</script>
<form id="AddMaps" action="test_multiple.php">
<fieldset>
<label for="server">Select a Server:</label>
<select name="server" id="server">
<option value="1">Server 1</option>
<option value="2">Server 2</option>
<option value="3">Server 3</option>
</select>
</fieldset>
<input name="submit" type="submit" id="submit" value="Upload">
<div id="ajax-panel"></div>
</form>
我遇到的問題是,Ajax調用是調用test_multiple不久進入成功的功能。 PHP完成。 test_multiple做了很多後端工作,如果我直接調用它,該頁面大約需要15秒才能加載。使用它,即使我可以看到後端的工作還沒有完成,它會報告它立即完成。
爲什麼馬上輸入成功?我如何阻止它這樣做?
此外,Firebug正在向test_multiple報告中止的POST請求,但是向test_multiple發送了成功的GET請求。
這是一個文件上傳?...文件上傳不能通過ajax沒有一些閃光燈的幫助,據我所知... – Reigel 2010-07-03 04:12:34
嗯,它可以,如果你創建一個隱藏的iframe並提交形式就是這樣。 include complete:function(XMLHttpRequest,textStatus){$('#ajax-panel')。append('Request Complete'); } 但我認爲這只是返回一個失敗(成功)的請求。您可以檢查狀態的第二個成功參數(data,textStatus,XMLHttpRequest),您可以檢查請求對象以獲取更多關於請求的數據。 – Andir 2010-07-03 04:23:07
它不是上傳文件,而是在後端的服務器之間傳輸一組文件。儘管用戶的計算機沒有任何內容。它正在發揮作用,它只是在完成轉移之前調用成功功能。 – Andy 2010-07-03 15:08:18