Сообщение от MoKa
Ну начну с того что возвращать просто число - никто так не делает.
Обычно возвращают JSON что в разы удобнее.
Во вторых переписывать стандартную функцию trim - я бы не делал этого вообще. Это ужасный говнокод, и если ты юзаешь где-то ещё trim'ы, а обычно народ юзает, то у тебя на trim'ы будет уходить в раз 10 больше ресурсов чем на стандартный.
Плюс писать так:
var resp = new String().trim(req.responseText);
Это гиперговнокондство, т.к. ты уже имеешь прототип функцию для String'а.
Так что пиши так:
var resp = req.responseText.trim();
Далее, да, ты никогда не должен полагаться на идентичность обработки ответов в броузерах на столь детальном уровне. Пустые пробелы или наличие /n или /r в конце сообщения. Также есть проблемы когда возвращается application/json, и в броузере стоит специальный аддон который json запросы красиво отображает - это дело вообще поломает твой запрос.
Если шлёшь от сервера данные, и хочешь чтобы они были максимально идентичны, шли с нужным Content-Type который не будет модифицироваться броузерами, например:
Такой запрос не должен быть обработан от сервера.
А вообще, я тебе порекомендую делать как все - шли JSON от сервера, так даже будет проще и удобнее слать сложные ответы.
header('Content-type: application/json'); $data = array(); $data['number'] = 4; echo json_encode($data);
И на клиенте так:
var data = JSON.parse(req.responseText); switch(data.number) { ...
Так ты сможешь слать любой приемлемой сложности данные, и без проблем парсить их в JSON.
|
Спасибо большое! С JSON не работал ещё, но сейчас думаю пришла пора изучать данный вопрос.
А то что сейчас у меня есть - сделано для отмазки, лишь бы работало. Плохо, да, нельзя так делать.
Не отрррицаю (c) А.Р. Бородач
Про стандартную функцию trim не знал, каюсь. Набил в гугле "javascript убрать пробелы" и воспользовался первым попавшимся результатом. Потом бы всё равно конечно исправил, но да, глупо с моей стороны.
Просто учусь делать активные сайты (пока что делаю копию сайта моего клана с юкоза).
Собственно это всё что я тут спрашивал у меня в форме входа используется (4 варианта ответа сервера возможных: 0-входим, 1-ненайден логин, 2-неверный пароль, 3-почему-то не удалось войти), и в зависимости от ответа нужное действие (например 0 отправляет на скрипт входа после некоторого времени). Пока что вот разбираюсь с входом и сессиями пользователей. Вопросов вагон и мааааленькая тележка, а время на из изучение, увы, отсутствует
А ещё форум собрался писать сам. Жесть короче, губозакатыватель нужно купить