Сегодня столкнулся с неприятным багом в популярной AJAX-библиотеке Дмитрия Котерова. Метод JsHttpRequest::php2js не корректно формирует JSON-объект -
только строка должна быть «обернута» кавычками. Числа должны возвращаться без кавычек.
Исправление ошибки «в лоб». Найти строку:
...
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
...
?>
и обернуть ее проверкой на строку:
...
if (is_string($a)) {
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
}
else {
return $a;
}
...
?>
Странно что до сих пор никто не столкнулся с этим - JavaScript воспринимает и работает не как с числом, а как со строкой. Со всеми вытекающими.
[
Оригинал Поста ]