Cached AJAX responses lose status metadata exposed through vm.route.response
Maintainer antworten meist innerhalb von 2 Tagen
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript
- Bereich
- web-dev
Rechercherichtung
Start at Fetch's contentFetched handler and trace the cache-hit path that invokes the success callback. Reproduce the case with the existing xhr-mock dependency in the Jest/JSDOM setup, then verify that a cached request passes the original content, options, and response metadata consistently with the first request.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug Report
Current behavior
The first AJAX request calls the success callback with (content, options, responseStatus), but a cache hit calls it with only (content, options). Fetch's contentFetched handler assigns that third argument to vm.route.response, so revisiting a cached page loses the response status available on the first visit.
On develop f34374b7423340e5ddec81c8ff565c26cc056fb5, a regression using the existing xhr-mock dependency shows:
get('/page.md').then((content, options, response) => {
// First request: response is { ok: true, status: 200, statusText: 'OK' }
get('/page.md').then((cachedContent, cachedOptions, cachedResponse) => {
// cachedResponse is undefined
});
});
Expected behavior
Cached content should carry the original response metadata too. Plugins should be able to inspect vm.route.response consistently across initial loads and revisits without adding cache-specific workarounds.
Suggested fix
Store the response status alongside the cached content and options, and pass all three to the callback on cache hits. This preserves the actual response status rather than synthesizing a 200 response.
Environment
Docsify 5.0.0 develop source, Jest/JSDOM on macOS. Reproduced with an HTTP response mock at the XMLHttpRequest boundary.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 31.5k
- Forks
- 5.8k
- Ø Merge
- 2 T. 14 Std.
- Gemergte PRs (30 T.)
- 5
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus docsifyjs/docsify
-
Query parameter values are truncated at a second equals signEvtl. vergeben @xu91102 hat das vor 22 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 2 Tagen
-
bug Triage
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
In the Edge browser, the character `{docsify-updated}` is not replacedEvtl. wieder frei @AmanUllah687 hat das vor 75 Tagen übernommen, und es ist kein Pull Request offen. Offenwait for information
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
docsifyjs/docsify#2681 · 11 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
feature request Triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
docsifyjs/docsify#2643 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Is it possible not to push unnecessary state when clicking an <a> element?Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenneeds discussion
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in docsifyjs/docsify
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Billionmail/BillionMail#389 ·
-
beginner-friendly category:finding-titles community enhancement first-timers-only good first issue hacktoberfest help wanted low hanging fruit micro-contribution type: task up-for-grabs
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Berserk-hub150/skillhawk#227 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 8 Tagen
-
Remove responsibilities not working in Custom Roles & BadgesEvtl. vergeben @thomasgwatson hat das heute übernommen. Offenagent-ready agent:needs-test
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
gkjohnson/three-mesh-bvh#933 ·
-
scope: curriculum status: waiting triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
freeCodeCamp/freeCodeCamp#71076 ·
Maintainer antworten meist innerhalb von 1 Tag