Abrufen des URL-Ankers in einer Werkzeug-Anfrage

7

Ich habe ein DAV-Protokoll, das Out-of-Band-Daten im URL-Anker speichert, z. die ghi in DELETE /abc.def#ghi . Der Server ist eine Flask-Anwendung.

Ich kann sehen, dass die Anfrage über tcpdump kommt, aber wenn ich mir das Anfrage-Objekt anschaue (wie zum Beispiel url () oder base_url ()), bekomme ich nur /abc.def zurück. Die #ghi wurde entfernt.

Gibt es eine Methode, die diese Informationen zurückgibt, oder muss ich die Anfrage von der Klasse ableiten, um das selbst zu handhaben? Wenn ja, gibt es ein Beispiel, das ich als Inspiration verwenden kann?

    
dland 29.09.2011, 12:52
quelle

3 Antworten

8

Ich stieß auf das gleiche Problem. Die Facebook-Authentifizierungs-API gibt das Zugriffstoken hinter einem Hash zurück, der an die Weiterleitungs-URL angehängt wurde. Auf die gleiche Weise lässt Flasks request.url alles in die URL hinter dem Hash-Zeichen fallen.

Ich benutze auch Flask, also denke ich, dass Sie meinen Brute-Force-Workaround mit Javascript's window.location.href verwenden können, um die vollständige URL zu erhalten. Dann habe ich einfach das Stück, das ich brauchte (das Zugriffstoken), extrahiert, in eine Umleitungs-URL eingefügt, wo ich das Zugriffstoken als Argument an die Empfangsansicht übergeben kann. Hier ist der Code:

%Vor%

Falls es Ihnen gelingt, (d) dies in Werkzeug zu tun, interessiert mich das.

    
joemar.ct 23.10.2011 15:07
quelle
8

Aus Wikipedia ( Fragment Identifier ) (habe keine Zeit, es im RFC zu finden):

  

Der Fragmentbezeichner funktioniert anders als der Rest des URIs: Seine Verarbeitung erfolgt ausschließlich clientseitig ohne Beteiligung des Servers

Also hat Flask - oder irgendein anderes Framework - keinen Zugriff auf #ghi .

    
Zoran Zaric 11.02.2013 09:52
quelle
4

Sie können dies tun, indem Sie flask.url_for mit dem Schlüsselwort _anchor verwenden:

%Vor%     
tamarabyte 18.11.2014 07:36
quelle

Tags und Links