Доброго времени суток, Булчане!
Пилю тут сайт (использую php, mysql, jquery, ajax), и нужно через аякс-запрос принять ответ от сервера (сервер в зависимости от параметро запроса посылает в ответ командой
echo определённую цифру (от 0 до 3, если быть совсем точным), ну т.е.
echo "2"; и т.п.), и в зависимости от этой цифры вывести определённое сообщение в <div> с помощью
innerHTML.
Вообщем суть проблемы - гугл хром отказывается преобазовывать принятый ответ в любые типы в ява-скрипте. Ответ принимается прекрасно и его можно вывести даже в любой элемент. Но его тип преобразовать невозможно в число, и как строка он тоже не обрабатывается. Я не пойму никак что это за тип такой.
В Опере (а я работаю только в ней и ни в чём больше, но сайт увы не для меня одного) меня всё пучком работает и преобразуется как надо (с помощью
parseInt() вообще замечательно). Тот же
parseInt() в хроме выдаёт NaN. Уже попробовал всё что нашёл в тырнете (преобразовывал даже в строку путём кода
var st = new String(...), а потом в число), всё равно не пашет.
toString() тоже не помогает. Даже банальное умножение этого дела на 1 (да и на любое число) в опере выдаёт правильный результат, а в хроме - NaN. ЧЯДНТ? Объясните глупому пожалуйста.
апд
забыл код, который некорректно работает (все варианты приводить не буду):
var resp = req.responseText;
alert(resp);
var response = new String(resp);
response = response*2;
alert(response);
Результат: первое сообщение цифра с сервера (правильная), второе сообщение - NaN.
Следующий код работает как надо в хроме:
var resp = 123; //если '123', то тоже работает правильно.
alert(resp);
var response = new String(resp);
response = response*2;
alert(response);
Результат: сообщение 123 и сообщение 246.
Значит проблема именно в типе принятого ответа. Или в браузере, хотя это уже врятли