【发布时间】:2016-10-18 16:15:30
【问题描述】:
我有一个问题,我向 WebAPI 控制器发出 GET,本质上是:
$.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum))
我正在使用encodeURIComponent 对skuNum 参数进行url 编码,在开发工具中查看请求我得到了需要编码的skuNum 的预期结果:
skuNum 已按预期从1000EF+ 变为1000EF%2B。
但是,当我在 WebAPI 控制器中查看 id 参数时,它是通过未编码的:
就好像客户端 url 编码正在以某种方式被撤消,谁能解释这里发生了什么?显然我可以通过在控制器中进行编码来解决这个问题,但我想了解为什么会发生这种情况。
【问题讨论】:
-
这是设计使然。默认情况下,API 框架将解码 URL 编码参数。编码只能用于传输数据。一旦在服务器上,开发人员就不必处理必须对其进行解码(横切关注)。按预期使用值。
-
@Nkosi 谢谢,我猜是有道理的。随意添加这个作为答案,它可能会帮助其他人。
标签: c# web-services asp.net-web-api urlencode