Проект CodeIgniter Предоставление 303 / Ошибка сжатия

Попытка настроить проект на основе CodeIgniter для локальной разработки (стек LAMP), и как только весь файл конфигурации был обновлен (что означает, что у меня были успешные ошибки начальной загрузки для CodeIgniter), я получаю эту ошибку в своих браузерах:

  • Хром

    Ошибка 330 (net :: ERR_CONTENT_DECODING_FAILED): Неизвестная ошибка.

  • Fire Fox

    Ошибка кодирования содержимого. Страница, которую вы пытаетесь просмотреть, не может быть показана, поскольку она использует недопустимую или неподдерживаемую форму сжатия.

Просто использование wget для извлечения файла отлично работает, никаких ошибок и я получаю контент, который я ожидаю. Не уверен, что это что-то с CI и сервером, или просто что-то странное с проектом. Кто-нибудь видел это раньше?

У CodeIgniter есть свой собственный метод gzipping его вывода (почему, я не знаю, но я не очень хорошо знаком с CI.)

Согласно этой записи в форуме , такая ошибка может возникать, когда сообщения об ошибках PHP завинчивают сжатый контент. Корректировка error_reporting к E_ALL ^ E_NOTICE сделала трюк.

Обновление. Кажется, что есть настройка конфигурации CI:

 $config['compress_output'] = FALSE; 

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

Для моего проекта я активировал GZIP в файле конфигурации CI:

 $config['compress_output'] = TRUE; 

В конфигурационном файле хорошо сказано, что:

 | Enables Gzip output compression for faster page loads. When enabled, | the output class will test whether your server supports Gzip. | Even if it does, however, not all browsers support compression | so enable only if you are reasonably sure your visitors can handle it. | | VERY IMPORTANT: If you are getting a blank page when compression is enabled it | means you are prematurely outputting something to your browser. It could | even be a line of whitespace at the end of one of your scripts. For | compression to work, nothing can be sent before the output buffer is called | by the output class. Do not 'echo' any values with compression enabled. | */ 

«Не эхо» любые значения с включенным сжатием ». здесь очень важно.

Тем не менее, моя функция должна эхо-кодировать json-код для моего вызова Ajax.

Чтобы исправить это, я добавил функцию «exit» после моего «эха» в функцию.

  echo json_encode($arr_ajaxResults); exit(); 

Теперь, с этим входом, я больше не сталкиваюсь с ошибкой «Content Encoding».

Надеюсь, это поможет парням, у которых такая же проблема.

Для пользователей IIS было бы полезно проверить ошибки в журнале PHP Manager.

Для меня ошибка была запрещена. Придется предоставить необходимые разрешения.

Мое решение:

текстовые редакторы normaly используют ascii-кодификации, я открываю файл с помощью блокнота ++ и изменяю кодировку страницы на: utf-8 without BOM . И страница теперь работает хорошо.