Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Изменить параметры отправки remoteSort и remoteFilter (https://javascript.ru/forum/extjs/65565-izmenit-parametry-otpravki-remotesort-i-remotefilter.html)

Sogl 26.10.2016 07:36

Изменить параметры отправки remoteSort и remoteFilter
 
Всем привет!

Делаю REST API и столкнулся с крайне странной ситуацией.

1. Если я включаю сортировку на стороне сервера с помощью remoteSort:true, то я вижу такой GET реквест:
GET http://app/api/v1/employees?_dc=1477437404042&page=1&start=0&limit=25&
sort=%5B%7B%22property%22%3A%22lastname%22%2C%22direction%22%3A%22ASC%22%7D%5D


Параметр sort при этом выглядит вот так:
[{"property":"lastname","direction":"ASC"}]


Я получаю Json в массиве :blink: , поэтому вынужден делать вот такие вещи на стороне сервера:
$sort = json_decode($request->get('sort'));
$property = $sort[0]->property;
$direction = $sort[0]->direction;


Выглядит ужасно, заставляя делать лишние движения.

2. Если я включаю фильтрацию на стороне сервера с помощью remoteFilter: true, то получаю такой реквест:
GET http://app/api/v1/employees?_dc=1477438685391&page=1&start=0&limit=25&
sort=%5B%7B%22property%22%3A%22lastname%22%2C%22direction%22%3A%22ASC%22%7D%5D&
filter=%5B%7B%22operator%22%3A%22like%22%2C%22value%22%3A%22%5Cu043c%5Cu0435%22%2C%22property%22%3A%22lastname%22%7D%5D


Параметр filter выглядит так:
[{"operator":"like","value":"\u043c\u0435","property":"lastname"}]


Получаем JSON в массиве с закодированными символами, если это не латиница :-/
Это текст `ме` на русском, однако перекодировать, как я описал в 1-м случае, его не получается, выходит такая ерунда:
ме

Конечно, бессмысленно отправлять это в БД.

Такой кусок кода есть в `index.html`:
Код:

<meta charset="UTF-8">
И файл сохранен в UTF8 без BOM.

Пытался также добавить headers параметр, но безуспешно:
proxy: {    
    headers: {'Content-Type': "text/html; charset=utf-8" },
    ...
}


Так как все-таки поменять вывод параметров (без этих вложений в массив) и кодировку?

p.s. Есть фреймворк на базе ExtJS, там все параметры отправляются в гораздо более удобном виде:
Код:

direction DESC
sort lastname
query ме


Sogl 26.10.2016 07:49

Создал тему также на форуме Сенчи, посмотрим ответят ли там:
https://www.sencha.com/forum/showthr...e-and-encoding


Часовой пояс GMT +3, время: 23:05.