Я наблюдал, как определенная страница, созданная из Ext 3, отвечала за отправку искаженного JSON в обработчик C #. 95% + времени JSON в порядке. Но иногда журналы ошибок показывают, что обработчик получил что-то вроде этого (очевидно, укороченное посередине):
appraisal = {"Id":"1234" [...] "rpb":false,"ex"%3
Другими словами, в середине JSON получается% X. X всегда соответствует символу, который должен быть там:% 3 - двоеточие,% 2 - правая квадратная скобка. Они выглядят как URL-кодировки, но это не так. Я не знаю кто они. Отказы случаются в случайных местах.
JSON кодируется Ext.encode (), например:
var options = {
params: {
action: 'Save',
objData: Ext.encode(myObject.data)
}
};
SaveObj(options);
Это должна быть ошибка encode (), потому что сам объект в порядке, и журналы указывают, что обработчик получает неверный JSON в этой форме. Но как это кодировать () вина? Что можно сделать, чтобы предотвратить это?