2010-04-16 2 views
1

У меня возникла странная проблема с jQuery и IE6. Скрипт работает на IE7 + и со всеми другими браузерами, которые я пробовал.

Я не могу опубликовать полный сценарий, но то, что он делает это:

$.post("file.php",{'foo':'bar'},function(data){ $('#target').append(data) }) 

Когда я запускаю код в IE6, #target просто показывает? и белый шар с отверстием посередине. Я понятия не имею, что это за второй символ.

Моя первоначальная мысль заключалась в том, что это была какая-то проблема с контентом, потому что файл.php просто отгоняет ответ без какой-либо информации заголовка. Я добавил Content-type: text/html с заголовком(), но не помог.

Любые предложения?

+0

я решил. Проблема заключалась не в кодировании, а в IE6 неспособность обрабатывать gzipped-файлы. Отключение дефлятного мод в Apache2 сделало трюк. Если вы запустите сайт, где вам нужен gzip, вы можете захотеть сделать некоторые хаки htaccess. – 2010-04-19 10:22:53

ответ

1

Возможно, вы видите проблему с набором символов.

Добавить Content-Type заголовок вашего PHP ответ, который правильно отражает как тип и кодировку ваши данные в.

header('Content-Type: text/html; charset=utf-8;') // for example 
+0

Не помогло. Это просто странно, что он должен возвращать «нуль» в виде строки прямо сейчас, но он просто дает? и странный символ. – 2010-04-16 14:44:55

+0

@Jim: Чтобы абсолютно точно понять, что происходит, проще всего просмотреть данные, которые * действительно проходят по проводу *. Пожалуйста, используйте сниффер пакетов для отслеживания пакета ответа сервера и проверки последовательности байтов в теле сообщения HTTP. (Также: 'utf-8' был всего лишь примером. Ваши данные могут быть в другой кодировке.) – Tomalak