У меня есть проблема, когда я выдающее GET
к контроллеру WebAPI, по существу:WebAPI получить параметры запроса быть UrlDecoded на контроллере
$.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum))
Я использую encodeURIComponent
по адр закодировать параметр skuNum
, просмотр запрос в Дев инструментов, которые я получить ожидаемый результат для skuNum
, который должен быть закодирован:
skuNum
пошел от 1000EF+
до 1000EF%2B
как и ожидалось.
Однако при просмотре параметра id
в контроллере WebAPI, он идет через ООН-закодировано:
Это как будто кодирование на стороне клиента URL в настоящее время уничтоженного какое-то образом, может кто-нибудь объяснить, что здесь? Очевидно, я могу обойти это, просто сделав кодирование в контроллере, но я хотел бы понять, почему это происходит.
Это по дизайну. Интерфейс API будет декодировать URL-кодированные параметры по умолчанию. кодирование должно использоваться только для транспортировки данных. один раз на сервере разработчик не должен иметь дело с необходимостью его декодирования (перекрестная озабоченность). Используйте значение по назначению. – Nkosi
@Nkosi Спасибо, имеет смысл, я думаю. Не стесняйтесь добавлять это в качестве ответа, это может помочь другим. – DGibbs