Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 07.09.2011, 20:25
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Походу какой-то странный облом с методом POST... Какая-то странная ошибка:

[07.09.2011 20:24:38] JavaScript - http://popov654.pp.ru/livemarks/edit.php
Event thread: click
Uncaught exception: DOMException: INVALID_STATE_ERR
Error thrown at line 444, column 5 in saveChanges(callback) in http://popov654.pp.ru/livemarks/edit.php:
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
called from line 429, column 9 in <anonymous function: document.form1.save.onclick>() in http://popov654.pp.ru/livemarks/edit.php:
saveChanges(function() {})


Ну и почему?.. Всё ведь правильно сделал
Ответить с цитированием
  #32 (permalink)  
Старый 08.09.2011, 01:28
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Убрал эту строчку, это дало возможность отладить PHP-скрипт. Но без неё скрипт не видит данные
Ответить с цитированием
  #33 (permalink)  
Старый 08.09.2011, 01:30
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

А с ней опять ошибка та же самая...
Ответить с цитированием
  #34 (permalink)  
Старый 08.09.2011, 01:40
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

А, блин. Почитал, разобрался. Следовало сначала метод open() вызвать у XMLHttpRequest, а потом уже заголовок ставить
Ответить с цитированием
  #35 (permalink)  
Старый 08.09.2011, 02:20
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Да копать его колотить...

Теперь русские буквы приходят в битом виде. Причём они ещё в БД в таком виде заносятся. Самое забавное, кодирование с помощью encodeURIComponent() ровным счётом ничего не даёт. На стороне сервера всё раскодируется само, даже не нужно вызывать urldecode(), а вот в базу всё равно пишется чёрт знает как.
Ответить с цитированием
  #36 (permalink)  
Старый 08.09.2011, 02:28
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Фуууф...
Вот эти 3 строки в конфиге были причиной всех несчастий:

Код:
mysql_query("SET character_set_client='cp1251'");
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_results='cp1251'");
Это всё потому, что у меня база в UTF-8 (привычка ещё со времён Ayola), а сайты в CP-1251. Но тут JavaScript похоже как раз в Юникоде отдаёт данные
Чтобы не рисковать остальными модулями, добавил сразу после include "config.php" следующие 2 строчки:

Код:
mysql_query("SET character_set_client='utf8'");
mysql_query("SET character_set_connection='utf8'");
И всё заработало (по крайней мере после того, как добавил верхнюю).

Добавлено спустя 2 минуты: кстати, нижняя, как оказалось, вообще не нужна. Что вполне логично: она отвечает за передачу данных между PHP и MySQL
Ответить с цитированием
  #37 (permalink)  
Старый 08.09.2011, 02:32
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Кстати, этот инклюд попортил мне ещё массу нервов, когда переменная с безобидным именем $base (номер предмета) вдруг начала чудесным образом менять значение с 3 на livemarks. И что бы вы думали? Правильно, она использовалась в config.php для хранения имени базы данных, а я имел неосторожность произвести чтение значения из $_POST ДО инклюда
Ответить с цитированием
  #38 (permalink)  
Старый 08.09.2011, 15:00
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

УРАААА! Вышла версия 4.3 с новыми улучшенными алгоритмами сохранения данных! Подробнее тут: LiveMarks 4.3
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странное поведение Dojo. Kuzya59 Dojo toolkit 4 15.10.2011 15:42
Странное поведение... popov654 Общие вопросы Javascript 6 29.03.2011 05:14
Странное поведение переменной mycoding Серверные языки и технологии 4 14.01.2011 19:18
DragAndDrop у гридов в плавающих окнах странное поведение PavelK ExtJS 0 29.07.2010 15:26
Странное поведение replace cooli0 Общие вопросы Javascript 4 25.01.2010 17:16