2016-05-06 4 views
0

Ich muss meine Seite pragmatisch aktualisieren (zum Beispiel location.reload(true);), aber auch den ursprünglichen http-Referer-Header pflegen.Wie aktualisiert man eine Seite und behalte den Referer-Header

Der http-Referer-Header bleibt bestehen, wenn Sie in Ihrem Browser auf die Schaltfläche zum Aktualisieren klicken. Ich weiß, es gibt eine ton von verschiedenen Möglichkeiten, um die Seite in Javasript zu aktualisieren, gibt es eine Möglichkeit, den HTTP-Referer zu pflegen?

Danke!

+0

Mögliches Duplikat von [Wie man den REFERER-Header in Javascript manuell setzt?] (Http://stackoverflow.com/questions/9580575/how-to-manual-set-referer-header-in-javascript) –

Antwort

0

Sie können den Wert der document.referrer nicht zwingen, etwas von einem Neuladen spezifisch zu sein. Aber es gibt Workarounds.

Eine schnelle, unauffällige Technik besteht darin, diesen Zustand in sessionStorage oder localStorage des Benutzers zu erhalten.

Sie können einen Zustand auch mit einem Neuladen verknüpfen, indem Sie ihn in einer Abfragezeichenfolge oder einer Fragmentkennung speichern.

const referrer = document.referrer; 

if (referrer) { 

    let query = location.search; 

    if (query) { 
     query += '&'; 
    } 

    query += 'referrer=' + encodeURIComponent(referrer); 

    location.search = query; // reloads the page 
} 

Wenn Sie jedoch nicht viel Kontrolle über den Seiteninhalt haben, kann die Query-String-Ansatz problematisch sein, da einige Anwendungen (Front-End und Back-End), die eine Abfrage sehen werden denken, sie müssen mach etwas besonderes. Es hat also ein Potenzial für unbeabsichtigte Nebenwirkungen.

Verwandte Themen