#php #cakephp #composer-php
#php #cakephp #композитор-php
Вопрос:
Я использую эту библиотеку: https://github.com/simon-begin/cakephp-datatables с композитором в проекте Cakephp 3. Когда я вызываю функцию drawTable , у меня возникает эта ошибка :
Uncaught SyntaxError: Unexpected end of input
В загруженном файле (cakephp.dataTables.js ) в браузере я вижу, что в начале файла добавляется новая пустая строка, а последний символ удаляется.
У меня нет этой ошибки, если :
- Я добавил новую пустую строку в конец файла JavaScript (на vendor/simon-begin/cakephp-datatables/cakephp.dataTables.js , Это только для тестирования кошелька)
-
Я скопировал файл js в другую папку и включил его следующим образом :
<?= $this->Html->script( [ 'datatables/jquery.dataTables.min', 'datatables/dataTables.bootstrap.min', 'newfolder/cakephp.dataTables', ], ['block' => 'scriptBottom'] ); ?>
вместо :
<?= $this->Html->script( [ 'datatables/jquery.dataTables.min', 'datatables/dataTables.bootstrap.min', 'DataTables.cakephp.dataTables', ], ['block' => 'scriptBottom'] ); ?>
Вы можете увидеть эту ошибку на: https://maisonlogiciellibre.org/organizations
Итак, я хочу знать, что вызывает эту ошибку, и как ее правильно исправить.
Комментарии:
1. Вероятно, у вас есть пробел где-то в начале одного из задействованных
.php
файлов.2. @ndm Большое вам спасибо, это была пустая строка в начале bootstrap.php . Но почему это происходит? Можете ли вы добавить свой комментарий в качестве ответа?
Ответ №1:
Вероятно, у вас есть пробел где-то в начале одного из задействованных .php
файлов.
В отличие от обычных ресурсов приложения, которые обрабатываются непосредственно сервером, даже не обращаясь к PHP, ресурсы плагина по умолчанию обслуживаются через CakePHP, следовательно, такие ошибки будут влиять на вывод, поскольку Content-Length
заголовок устанавливается на основе размера файла ресурсов, в результате чего дополнительные байты для пробелов усекаются изконец тела ответа.