I have a DAV protocol that stores out-of-band data in the url anchor, e.g. the ghi
in DELETE /abc.def#ghi
. The server is a Flask application.
I can see the request come in on the wire via tcpdump
, but when I look at the werkzeug Request object (such as url() or base_url()), all I get back is /abc.def
. The #ghi
has been stripped out.
Is there a method that returns this information, or do I have to subclass Request to handle this myself? If so, is there an example I can use as an inspiration?
I ran into the same problem. Facebook authentication API returns the access token behind a hash appended into the redirection url. In the same way, Flask's request.url drops everything in the URL behind the hash sign.
I'm also using Flask so I think you can use my brute-force workaround using Javascript's window.location.href to get the full URL. Then, I just extracted the piece that I needed (the access token), put it into a redirection URL where I can pass the access token as an argument to the receiving view function. Here's the code:
In case you manage(d) to do this within Werkzeug, I'm interested to know how.
You can do this using flask.url_for with the
_anchor
keyword argument:From Wikipedia (Fragment Identifier) (don't have the time to find it in the RFC):
So Flask - or any other framework - doesn't have access to
#ghi
.