Code: Select all
"GET /foobar.html?this=that"Code: Select all
"GET /request.html?method=GET&url=foobar.html"Code: Select all
(command-event (fn (str)
  (local (method url page)
    (begin
      (map set '(method url) (0 2 (parse str )))
      (if (find "?" url) (set 'page ((parse url "?") 0)))
      (join (list "GET /request.html?method=" method "&page=" page) "")))))Code: Select all
<html>
  <body>
    <h1>Hello</h1>
    <script type="text/javascript">
      query = document.location.href.split("?")[1]
      vars = query.split("&")
      for( i = 0; i < vars.length; i++ )
        document.write( vars[i] + "<br>" )
    </script>
  </body>
</html>Hello
this=that
Instead of
Hello
method=GET
page=foobar.html
as I expect. In other words, the base url is correctly translated from "foobar.html" to "request.html", but the original query parameters are being passed instead of the new ones.
Can anyone explain:
(1) Why does command-event behave like this?
(2) How can I rewrite the query parameters?
I'd be most grateful for any advice.