Всем привет!
Делаю 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 в массиве
, поэтому вынужден делать вот такие вещи на стороне сервера:
$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 ме |