2016-05-12 5 views
2

Ich entwickelte einen Pixel-Tracking-Microservice mit Elixir und Phoenix. Ich versuche, die ursprüngliche URL, unter der das Pixel-Tracking installiert ist, von Plug.Conn zu erhalten.Get HTTP_REFERRER von Plug.Conn

ging ich davon aus, dass ich versuchen, den HTTP_REFERRER Kopf- oder Variable oder etwas von Plug.Conn zu bekommen, aber ich muß vielleicht falsch sein, wie der Browser und HTTP arbeiten als ich nichts über Referrer in Plug.Conn in meinem Controller gefunden.

Irgendwelche Ideen?

Antwort

6

Der Referer ist anwesend in conn.req_headers. Sie können es List.keyfind/4 mit bekommen:

case List.keyfind(conn.req_headers, "referer", 0) do 
    {"referer", referer} -> 
    IO.puts referer 
    nil -> 
    IO.puts "no referer" 
end 
3

Sie get_req_header/2 verwenden können. Zum Beispiel

conn |> get_req_header("referer") 

Nicht, dass der Rückgabewert kann nil sein, wenn Referer nicht vorhanden ist.