2016-10-17 1 views
2

컨트롤러에서 urldecode 될것되고 WebAPI GET :요청 매개 변수가 나는 기본적으로 내가 WebAPI 컨트롤러로 <code>GET</code>를 발행하고있어 문제가있을

$.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum)) 

내가 인코딩에게 skuNum 매개 변수를 URL에 encodeURIComponent을 사용하고 있습니다를보기 개발 도구의 요청이 나는 인코딩 할 필요가있는 skuNum에 대한 예상 결과를 얻을 :

enter image description here

skuNum 예상대로 1000EF+에서 1000EF%2B으로 바뀌 었습니다. 나는 WebAPI 컨트롤러에서 id 매개 변수를 볼 때

그러나, 그것을 통해오고 인코딩되지 않은 :

enter image description here

클라이언트 측 URL 인코딩은 어떻게 든 취소 할되고있는 것처럼 그건이 사람이 무엇을 설명 할 수 여기서? 분명히 컨트롤러에서 인코딩을 수행하여이 문제를 해결할 수 있지만이 문제가 왜 발생하는지 이해하고 싶습니다.

+0

이것은 의도적으로 설계된 동작입니다. API 프레임 워크는 URL 인코딩 된 매개 변수를 기본적으로 디코딩합니다. 인코딩은 데이터를 전송하는 데에만 사용해야합니다. 한번 서버 개발자는 그것을 해독해야 할 필요가 없어야합니다 (크로스 커팅 우려). 값을 의도 한대로 사용하십시오. – Nkosi

+0

@ Nkosi 감사합니다. 이 질문을 답으로 추가하면 다른 사람들에게 도움이 될 수 있습니다. – DGibbs

답변

1

이것은 의도적으로 설계된 동작입니다. API 프레임 워크는 URL 인코딩 된 매개 변수를 기본적으로 디코딩합니다. 인코딩은 데이터를 전송하는 데에만 사용해야합니다. 한번 서버 개발자는 그것을 해독해야 할 필요가 없어야합니다 (크로스 커팅 우려). 값을 의도 한대로 사용하십시오.

관련 문제