In meinem Projekt (PHP mit Symfony 2) Ich mache eine Menge von Ajax Anfragen auf jeder Seite. Ich habe viele Probleme mit ihnen, weil es so aussieht, als würden Browser (die in Google Chrome und Firefox getestet wurden) Anfragen abbrechen, ohne mir einen Fehler mitzuteilen. Ich habe eine saubere Seite erstellt, um zu testen, was dieses Problem verursachen kann, und der Fehler bleibt bestehen. Ich habe einen Test gemacht, der 10 Anfragen innerhalb einer for
Schleife durchführt (ich glaube, dass wir kein Problem damit haben, richtig?).Browser bricht Ajax-Anfragen sporadisch ab, ohne Fehler zurückzugeben
Hier ist mein Code:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test page</title>
</head>
<body>Test page.
<script type="text/javascript" src="/js/compressed_jquery-1.8.2.min_1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
for (var i = 0; i < 10; i++) {
$.get('/i18n/javaScript/pt.json', function(data) {
console.log(data);
});
}
});
</script>
</body>
</html>
Und hier ist ein Screenshot von Anfragen in Firebug führen:
Wie Sie sehen können, sind einige Anforderungen abgeschlossen und andere nicht. Manchmal vervollständigt der Browser alle 10 Anfragen ohne Fehler. Was kann das verursachen?
Ich habe alle Lösungen getestet, aber ich bin mir ziemlich sicher, dass es ein Windows-, Apache- oder PHP-Konfigurationsproblem ist. Heute habe ich eine VM in meinem Rechner mit VirtualBox läuft Ubuntu 13.04 (Raring Ringtail) mit Apache 2.2 + PHP, und keine Fehler konfiguriert, was beweist, dass nichts mit meinem JavaScript, HTML oder PHP-Code ist. Ich bin mir nicht sicher, dass es sich um ein Konfigurationsproblem handelt. Wie finde ich diese Konfiguration?
Sieht aus Wie alle Anfragen sind auf die gleiche URL: Wird also jede Anfrage abgebrochen, weil sie vom Cache erfüllt wurde oder weil ein Fehler aufgetreten ist? Ändern sich die Dinge, wenn Sie einen zufälligen Querystring-Wert hinzufügen, d. H. Um den Cache zu zerstören? – thefrontender
Ich glaube nicht, dass es sich um ein Abfrageproblem handelt, denn wenn der Cache verwendet wird, erhält der Browser eine Antwort 302 (nicht geändert). Und in meinem echten Code haben alle Anfragen unterschiedliche URLs. –
Ich habe mein Beispiel mit dieser URL versucht: '/i18n/javaScript/pt.json?t=' + Math.floor (Math.random() * 101) und der Fehler bleibt bestehen. Es ist kein Cache-Problem. =/ –