it-swarm.com.de

Wie greife ich über JavaScript auf die HTTP-Anforderungsheaderfelder zu?

Ich möchte die HTTP-Anforderungsheaderfelder, hauptsächlich den Referer und den User-Agent, in meinem clientseitigen JavaScript erfassen. Wie kann ich darauf zugreifen?


Google Analytics schafft es, die Daten, die Sie in Ihre Seiten eingebettet haben, über JavaScript abzurufen, so dass dies definitiv möglich ist.

Verwandte:
Zugriff auf die HTTP-Header der Webseite in JavaScript

49
dacracot

Wenn Sie auf Referrer und User-Agent zugreifen möchten, stehen diese für clientseitiges Javascript zur Verfügung, jedoch nicht durch direkten Zugriff auf die Header.

Verwenden Sie document.referrer , um den Referrer abzurufen.
Um auf den Benutzeragenten zuzugreifen, verwenden Sie navigator.userAgent .

Wie andere angegeben haben, sind die HTTP-Header nicht verfügbar, aber Sie haben speziell nach dem Referer und User-Agent gefragt, die über Javascript verfügbar sind.

66
Grant Wagner

Fast definitionsgemäß befindet sich das clientseitige JavaScript nicht am empfangenden Ende einer http-Anforderung, sodass keine zu lesenden Header vorhanden sind. In den meisten Fällen ist Ihr JavaScript das Ergebnis einer HTTP-Antwort. Wenn Sie versuchen, die Werte der http-Anforderung abzurufen, die Ihre Antwort generiert hat, müssen Sie serverseitigen Code schreiben, um diese Werte in das von Ihnen erstellte JavaScript einzubetten.

Es wird ein wenig schwierig, serverseitigen Code zum Generieren von clientseitigem Code zu verwenden. Stellen Sie also sicher, dass Sie diesen benötigen. Wenn Sie beispielsweise die Benutzeragenteninformationen benötigen, ist diese möglicherweise ausreichend, um die verschiedenen Werte abzurufen, die JavaScript für die Browsererkennung bereitstellt. Beginnen Sie mit navigator.appName und navigator.appVersion.

9
bmb

Auf diese Funktion kann über Javascript zugegriffen werden, da sie eine Eigenschaft des geladenen Dokuments und nicht der übergeordneten Komponente ist.

Hier ist ein kurzes Beispiel:

<script type="text/javascript">
document.write(document.referrer);
</script>

Das Gleiche in PHP wäre:

<?php echo $_SERVER["HTTP_REFERER"]; ?>
6
Tommy Lacroix

Referer und User-Agent sind Anforderungsheader und keine Antwortheader.

Das bedeutet, dass sie vom Browser oder Ihrem Ajax-Aufruf (den Sie ändern können) gesendet werden und dass sie festgelegt werden, bevor Sie eine HTTP-Antwort erhalten.

Sie fragen also nicht nach einem HTTP-Header, sondern nach einer Browsereinstellung.

Der Wert, den Sie von document.referer und navigator.userAgent erhalten, ist möglicherweise nicht der eigentliche Header, sondern eine Browsereinstellung.

1
Li-chih Wu

Ich stelle mir vor, Google greift zu einige datenserverseitig - denken Sie daran, dass Ihr Browser beim Laden einer Seite in Ihren Browser, die Google Analytics-Code enthält, eine Anfrage an die Server von Google sendet. Google kann Daten sowohl auf diese Weise als auch über das auf der Seite eingebettete JavaScript abrufen.

0
Jason Bunting