2016-10-17 55 views
2

我在那裏我發出GET到的WebAPI控制器的問題,基本上是被UrlDecoded請求參數:我使用encodeURIComponent到URL編碼的skuNum參數的WebAPI獲得在控制器

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

,觀看在開發工具的請求,我得到一個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編碼參數。編碼只能用於傳輸數據。一旦服務器開發人員不必處理必須對其進行解碼(橫切關注)。按預期使用該值。