2013-12-16 3 views
1

은 다음 사항을 고려 인코딩 extraParams가 :의 ExtJS 아약스 프록시 -

var params = Ext.urlDecode(window.location.search); 
var store = Ext.getStore("EntryStore"); 
store.getProxy().extraParams={'mail':params.mail,'id':params.id}; 
store.load(); 

localhost/mypage/[email protected]&id=QWERTYUIOP/ASDFGHJKL456+yxcvbnm==
호출 할 때하면 예약 문자를 "+"를 포함하고 해당 매개 변수에 백엔드 초크하게
localhost/api/?_dc=1387181002249&[email protected]&id=QWERTYUIOP/ASDFGHJKL456+yxcvbnm==&page=1&start=0&limit=25
를 조회합니다.

인가합니다 (C#의 WebApi 백엔드은 원래
QWERTYUIOP/ASDFGHJKL456+yxcvbnm== 반대로 ID가,
QWERTYUIOP/ASDFGHJKL456 yxcvbnm== 것을 알려줍니다)
(가) 인코딩되지 않은 "+"엽차 또는
버그에 서명 (b) 의도 한대로 작동하며 설명서를 읽어야합니다 (링크를 제공하십시오, 찾을 수 없습니다) 또는
(c) WebApi가 질식하는 Microsoft 측의 버그 "+"?

종류와 관련,

알렉산더 공백 문자를 사용하여

답변

1

쿼리 문자열은 제대로 인코딩 할 필요가있다. 해당 항목에 대한 답변은 this입니다.

요약하면 Sencha에서는 버그가 아닙니다. API의 버그는 아닙니다 (필연적)입니다.

querystring을 잡기 위해 window.location.search를 사용한다고 가정 할 때, 문제는 공백을 적절하게 인코딩하지 않고 그 지점에 도달했다는 것입니다.