What does request.query mean?
Hello guys, I'm testing the form's processing and it behaves wierd. my form:
<html>
<body>
<form method="POST" action = "/"><input name="param" type="text"/><input type="submit"/></form>
<br>
Submitted: {{submitted}}
</body>
</html>
My server code:
app.post("/") { (request:Request<AnyContent>)->Action<AnyContent> in
print("Params:" ,request.params)
print("Query:", request.query)
return Action<AnyContent>.render("index",context: ["submitted": ""])
}
app.get("/") { (request:Request<AnyContent>)->Action<AnyContent> in
return Action<AnyContent>.render("index",context: ["submitted": ""])
}
The result is:
Merged: ["param": ["12345", "12345"]] Query: ["param": ["12345"]]
Seems like mergedQuery adds the same value twice??? Why?? What query and mergedQuery are expected to be then?
However if add post parameters in form action like:
<form method="POST" action = "/?param1=123456" >
the result seems to be logical: Merged: ["param1": ["123456"], "param": ["123456"]] Query: ["param1": ["123456"]]
Regards, Peter
If parameters names are the same:
<form method="POST" action = "/?param=123456"><input name="param" type="text"/><input type="submit"/></form>
then also logical but inconvenient a bit as it's not clear where parameter come from:
Merged: ["param": ["123456", "123456"]]
Query: ["param": ["123456"]]
@killev Thanks for reporting. Will try to fix in the nearest version.
query should be just from the URL
mergedQuery is both URL and body.
you can as well access just body data with request.body.asFormUrlEncoded()