2013-12-16 3 views
1

Рассмотрим следующее:ExtJS Ajax Proxy - кодировать extraParams

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
, которая содержит зарезервированный символ "+" и делает бэкэнд заслонку по этому параметру.

(The # WebAPI бэкенд C говорит мне, что идентификатор
QWERTYUIOP/ASDFGHJKL456 yxcvbnm==, в отличие от оригинального
QWERTYUIOP/ASDFGHJKL456+yxcvbnm==)

ли
(а) неперекодированный знак "+" ошибка в сенча или
(b) все работает по назначению, и я должен прочитать руководство о том, как закодировать мои параметры (просьба указать ссылку, я не нахожу) или
(c) ошибка на стороне Microsoft, которая заставляет WebApi задохнуться «+»?

С наилучшими пожеланиями,

Александр

ответ

1

строки запроса, используя пробел нужно, чтобы быть правильно закодирован. См. this ответ на эту тему.

Короче говоря, это не ошибка в Сенча. Это не обязательно (обязательно) ошибка в вашем API.

Учитывая, что вы используете window.location.search для захвата запроса, проблема в том, что вы добрались до этой точки без надлежащей кодировки пробелов.

Смежные вопросы