2013-07-10 3 views
5

Ich möchte in der Lage sein, meinem Tritium-Projekt eine Logik hinzuzufügen, die auf dem Header der eingehenden Anfrage basiert. Ist es möglich, auf die Header-Informationen zuzugreifen und dann match() mit() Logik durchzuführen?Wie kann man auf die Header einer eingehenden Anfrage in Tritium zugreifen?

Mein Plan ist, eine vorhandene URL (die über eine normale GET-Anfrage zugegriffen werden kann) zu nehmen und ihr einen zweiten Funktionsmodus zu geben, damit sie in eine AJAX-API umgewandelt werden kann. Wenn das JavaScript die API-Anfrage stellt, könnte ich ein benutzerdefiniertes Header-Flag setzen, damit die Plattform die Anfrage anders interpretieren kann.

Antwort

2

Sie sollten in der eingehenden HTTP-Anforderung mithilfe der globalen Variablensyntax auf Header zugreifen können. Zum Beispiel, um die Hostnamen der Website zuzugreifen:

$host 
# => yourwebsite.com 

Ich glaube, dass die meisten der Standard-Header als globale Variablen in Tritium zugänglich sind. Allerdings bin ich nicht sicher, ob alle Header als globale Vars zugänglich sind.

In Ihrem Projektordner auf Ihrem Entwicklungscomputer sollte sich ein Ordner tmp befinden, der die HTTP-Anfrage/Antwort-Pakete enthält. Jedes Paket sollte mit dem Datum und der Uhrzeit der Anfrage versehen sein. Ich denke, wenn Sie in einem dieser Ordner spähen, sollten Sie eine Reihe von Dateien sehen:

  • incoming_request
  • incoming_response
  • outgoing_request
  • outgoing_response

Und möglicherweise eine fünfte Datei. Ich kann mich nicht erinnern, ob dies in der aktuellen Version der Plattform immer noch der Fall ist, aber es besteht die Möglichkeit, dass Sie eine fünfte Datei mit den globalen Variablen finden, die der Tritium-Server zum Speichern der HTTP-Anforderungsheaderwerte erstellt. Sie können also in diese Datei hineinschauen (wenn sie existiert) und herausfinden, welchen Variablennamen Ihre HTTP-Header verwenden.

Hoffe, dass hilft!

+0

Ich glaube, es gibt zwei, initial-env.json und final-env.json.Sie finden alle globalen Variablen, die zu Beginn der Tritium-Ausführung in initial-env.json für Sie festgelegt wurden, einschließlich der Anforderungsheader. – noj

1

Ich bin zu spät dran, aber ich dachte mir, ich würde jemandem helfen, der Hilfe braucht.

benötigen Sie zwei Dateien in Ihrem Skriptverzeichnis erstellen, nannte man

request_main.ts

und

response_main.ts

Sie können dann Dinge verwenden, wie die parse_headers Funktion , die je nach der Datei, in die Sie den Code eingegeben haben, die Anforderungs-/Antwortheader durchläuft.

parse_headers() { # iterate over all the incoming/outgoing headers 
    log(name())  # log the name of the current cookie in the iteration 
    log(value())  # log the value of the current cookie in the iteration 
} 

parse_headers(/Set-Cookie/) { # iterate over the Set-Cookie headers only. 
    log(this()) 
} 

Dies wird alle Ihre Header-Namen, melden Sie Änderungen vornehmen, können Sie dann „Setter“ Funktionen verwenden können, die Sie hier lesen können:

http://developer.moovweb.com/docs/local/configuration/headers

Viel Glück.

Verwandte Themen