ile birlikte 200 değerini döndürüyor. Önbellek bildirimi ile bir HTML5 test web sayfası test.html
var. Web sayfası, aynı sunucuya, önbellek bildiriminde NETWORK:
bölümünün altında listelenen bir do_get_data.php
web sayfasına bir Ajax isteği gönderir.Ajax isteği gerçekleştirilemedi ve sunucu veri
İstek, hem Firefox 10 hem de iPhone iOS 5 Safari tarafından gerçekleştirilir (bu, PHP betiği do_get_data.php
hizmetinde kaydedilir). Firefox 10, 10 saniye sonra success
geri arama işlevini çağırır, yani sunucudan veriler döndüğünde. Bununla birlikte, iPhone iOS 5 Safari, isteği başlattıktan hemen sonra fail
geri arama işlevini çağırır ve success
geri arama işlevini çağırmaz.
iPhone iOS 5 Safari için, textStatus
error
ve JSON.stringify(jqXHR)
, {"readyState":0,"responseText":"","status":0,"statusText":"error"}
şeklindedir.
isteği test.html
aşağıdaki kodu kullanılarak gerçekleştirilir: Referans olarak
<script type="text/javascript">
function test_ok(data) {
alert('Test OK, data: ' + JSON.stringify(data));
}
function testFail(jqXHR, textStatus) {
alert(textStatus + ' | ' + JSON.stringify(jqXHR));
}
function get_data(testurl) {
var senddata, request;
alert('Request for ' + testurl + ' started.');
window.testid = new Date().getTime();
senddata = {
background: true,
requestId: window.testid
};
request = $.ajax({
url: testurl,
cache: false,
type: "GET",
data: senddata,
success: test_ok
});
request.fail(testFail);
}
</script>
<input type="button" onclick="get_data('do_get_data.php')" value="test sending" />
, do_get_data.php
şuna benzer:
<?php
$id = md5(rand() . rand());
trigger_error(implode("\t", array('start', $id, $_SERVER['REQUEST_URI'], $_SERVER['REMOTE_ADDR'], $_SERVER['USER_AGENT']));
sleep(10);
header('Content-Type: application/json');
$json = json_encode(array('msg'=>'Test was OK'));
trigger_error(implode("\t", array('echo', $id, $json));
echo $json;
?>
Uykuyu kaldırırsanız ne olur (10)? –
Ve sunucu tarafında Safari'den başarılı istekleri gösteren bir günlüğünüz olduğunu doğru bir şekilde anlıyor musunuz? –
@asaddude Uykuyu kaldırsam bile (10) durum aynı. Evet, sunucu tarafındaki günlük Safari'yi gösterir. – AndersTornkvist