Ajax перестал работать в Chrome после перехода на Lighttpd - PullRequest
0 голосов
/ 03 ноября 2010

У меня проблема с отображением текста / JSON в Chrome.Я использую библиотеку YUI для отправки ajax-запроса и обработки ответа.

Проблема появилась сразу после того, как я перешел с Apache с mod_php на Lighttpd с php-fpm в качестве fastcgi.Ajax запрашивает что-то с сервера, сервер возвращает контент типа text / json (объявленный контент text / json в заголовке)

Работает и визуализируется во всех браузерах, кроме Chrome.Вот что странного в том, что он работает в Firefox, Safari, IE, но не в Chrome.

Я понятия не имею, что здесь происходит.Я даже отключил выходное сжатие, потому что я думал, что это было причиной проблемы, но проблема все еще не исчезла.

Я надеюсь, что кто-то уже сталкивался с этой проблемой и выяснил, как ее исправить.

1 Ответ

2 голосов
/ 03 ноября 2010

Это довольно невероятно, но я проследил это до следующего: на стороне сервера, используя php, я устанавливал заголовок непосредственно перед отправкой вывода, например так: header ("Content-type: text / json; charset = UTF-8 ");

Это работало просто отлично для всех браузеров, кроме Chrome, который ожидал, что Content-Type заметит верхний регистр" T "Так что после того, как я изменил его на: header (" Content-Тип: text / json; charset = UTF-8 ");

все работает и в Chrome.Почему он работал с Apache / mod_php и перестал работать с Lighttpd / fastcgi?Я думаю, что Apache каким-то образом исправлял все заголовки непосредственно перед тем, как они были фактически отправлены, и Lighttpd на самом деле не волнует.

Я удивлен, что даже смог отследить это.

Я надеюсь, что яПолучите значок для решения моего собственного вопроса, и, надеюсь, он поможет кому-то еще, у кого может быть такая же проблема.

...