Показать сообщение отдельно
Старый 22.02.2013, 11:19   #1
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Проблема с преобразованием типов Javascript

Доброго времени суток, Булчане!

Пилю тут сайт (использую 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.
Значит проблема именно в типе принятого ответа. Или в браузере, хотя это уже врятли
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием