AJAX funktioniert, wenn Chrome Dev Tools geöffnet sind, aber nicht, wenn Chrome Web Tools geschlossen sind?

Ich lade eine JSON-Datei über Ajax. Wenn Chrome dev tools geöffnet ist, funktioniert alles einwandfrei. Wenn Chrome dev tools geschlossen ist, schlägt dies fehl. Gott sei Dank, dass Dev Tools auch nach dem Schließen weiterarbeiten, sodass ich immer noch die Ausnahme sehe, die ich bekomme:

Failed to load resource: the server responded with a status of 412 (Precondition Failed) http://localhost/experiments/escape/maps/test.json

Warum sollte es eine Vorbedingung dafür geben, ob Entwicklungswerkzeuge geöffnet sind? Außerdem ist es unwahrscheinlich, dass das Öffnen und Schließen der Entwicklungstools das Serververhalten in irgendeiner Weise beeinflusst. Aus diesem Grund denke ich, dass Chrome die Anforderung eher verhindert als den Server, wie in der Ausnahme vorgeschlagen.

Leider verfolgt dev tools die Netzwerkaktivität nicht, wenn es geschlossen ist, so dass ich die Netzwerkregisterkarte nicht verwenden kann, um weitere Informationen zu erhalten.

Das AJAX wird über JQuery mit folgendem Code behandelt:

map.load = function(mapName, tileSource, tileWidth, tileHeight, onLoad) {
    $.ajax({
        url: '../escape/maps/'+mapName+'.json',
        type: 'post',
        success: function(mapData) {
            // there's loads of stuff in here but I don't think it's relevant to the question as the failure prevents the success method from being called.
        }
    });
};

Dieser Code verursacht in Firefox keine Probleme und scheint daher speziell mit Chrome Dev Tools verbunden zu sein. Irgendwelche Vorschläge sind willkommen, da ich völlig durcheinander bin!

BEARBEITEN: Ok, es ist also überhaupt kein Fehler bei den Entwicklungstools. Ich hatte den Cache in den Entwicklungstools deaktiviert und wieder aktiviert, damit das Skript korrekt funktioniert. Warum hängt mein Code vom Cache ab? Das Deaktivieren / Aktivieren des Caches in Firefox verursacht keine Probleme

EDIT2: Ok, ich denke ich komme näher. Die Voraussetzung, die fehlschlägt, ist die Bedingung if-modified-since (die Datei hat sich nicht geändert). Ich gehe davon aus, dass Chrome dies sendet, um zu bestätigen, ob die zwischengespeicherte Version verwendet werden soll oder nicht. Trotz der fehlgeschlagenen Voraussetzung wird die zwischengespeicherte Version jedoch nicht geladen. Ich dachte, dies könnte bedeuten, dass der Cache in irgendeiner Weise beschädigt wurde, also habe ich den Cache geleert. Leider löst dies das Problem nicht. Die Datei wird problemlos einmal geladen, aber beim nächsten Mal bin ich wieder da, wo ich mit demselben Problem angefangen habe. Irgendwelche Ideen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage