Encoding 控制器中=的意外解码
在前端,我使用以下数据执行jQueryEncoding 控制器中=的意外解码,encoding,playframework,Encoding,Playframework,在前端,我使用以下数据执行jQueryPOST: [{name:“Kevin”,年龄:100,favoriteOperator:“=”}] 这篇文章点击了/sampleURL 在我的控制器中,我在帖子正文中使用: def submit = Action { implicit request => val maybeRequestAsFormUrlEncoded: Option[Map[String, Seq[String]]] =
POST
:
[{name:“Kevin”,年龄:100,favoriteOperator:“=”}]
这篇文章点击了/sample
URL
在我的控制器中,我在帖子正文中使用:
def submit = Action { implicit request =>
val maybeRequestAsFormUrlEncoded: Option[Map[String, Seq[String]]] =
request.body.asFormUrlEncoded
打印出的地图显示:
Map([{“name”:“Kevin”,“age”:100,“favoriteOperator”:“->List(“}])
为什么我的
favoriteOperator
显示为“->列表(“
而不是”=”
?非常确定asFormUrlEncoded
需要如下输入:
queryString=abc,def
anotherQueryString=blabla
然后将其转换为地图,如下所示:
Map("queryString" -> List("abc", "def"), "anotherQueryString" -> List("blabla"))
(实际上,我不太确定abc、def
和blabla
是否真的被反序列化到一个列表中,这个想法只是因为您在示例中得到了一个列表)。无论如何,重要的是,asFormUrlEncoded
需要键值对以=号分隔,这就是为什么字符串会这样分开。另请参阅
您可能希望查看正在使用的Json反序列化程序,因为您的请求具有Json格式:
也许您需要对
=
-字符进行URL编码?如果改用%3D
,是否有效?