Ben aşağıdaki kodu var:
<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>
Ben yaşıyorum sorun, ajax arama uzun tamamlanana test_multiple.php çağrısı önce başarı işlevini giriyor olmasıdır. test_multiple arka uç bir sürü iş yapıyor ve ben doğrudan çağrı eğer sayfanın yüklenmesi yaklaşık 15 saniye sürer. Bunu kullanarak, ben backend işi henüz bitmedi görebilirsiniz bile olsa, anında tamamlar olduğunu bildiriyor.
Neden hemen başarı girer? Nasıl bunu yaparken durdurabilirim?
Ayrıca, Firebug test_multiple bir aborted POST isteği ama test_multiple başarılı bir GET isteğini bildiriyor.