Jquery file uploader blueimp, Неожиданный токен/символ
Прежде всего позвольте мне сказать вам, что я уже искал ответы на некоторые вопросы, и хотя это немного помогло мне, мои основные проблемы остаются нерешенными.
Я использовал загрузчик файлов (версия 9.8.0) @http://blueimp.github.io/jQuery-File-Upload/
(1-я проблема)
Кажется, все работает нормально, пока я не начну загружать. После завершения загрузки он сообщает следующую ошибку для каждого изображения (вместо сообщения "загрузить успешное" ).
В Google Chrome говорится: "SyntaxError: Неожиданный токен <"
на Mozilla FireF. он говорит: "SyntaxError: JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON"
Я искал некоторые решения, но не могу понять, как применять эти решения. И кстати, он добавляет изображение, несмотря на ошибку.
Ответы
Ответ 1
Метод, который вы вызываете, представляет собой страницу ошибки с html (начиная с < и не может быть проанализирован в JSON), если вы посмотрите на вкладку сети в своем браузере.
Например, в Google Chrome:
- Открыть отладчик: F12
- Перейдите на вкладку сети
- Загрузите
- Вы должны увидеть запрос, отправленный на вкладке Сеть
- Нажмите этот запрос
- Это откроет новое окно с вкладкой для ответа с сервера. Этот ответ скорее всего будет каким-то сообщением об исключении.
У меня была аналогичная проблема с ASP.Net MVC с другим загрузчиком, когда один из параметров был отправлен как null, и он не был нулевым на контроллере.
Ответ 2
SyntaxError: JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON
проверьте это так и посмотрите, связана ли ваша проблема.
В принципе, это может означать, что возвращенное сообщение успеха не имеет надлежащей разметки HTML, и, следовательно, браузер не может их отображать.
Ответ 3
Скорее всего, вы пытаетесь JSON.parse
предоставить серверу сообщение об ошибке или другой ответ, не относящийся к JSON, и это, вероятно, HTML, учитывая, что первый символ задохнулся.
Я бы открыл консоль, заставил страницу произвести ошибку, найти запрос на вкладке Сеть инструментов dev и проверить вкладку ответа запросов (-ов) загрузки, чтобы увидеть, что на самом деле возвращается.
Надеемся, что ответ даст вам решение (например, исправление сообщения об ошибке) или более конкретный вопрос, который можно задать.
Ответ 4
Я решил эту проблему, отредактировав URL-адрес в файле main.js с помощью index.php
, например:
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: 'imagegallery/server/php/index.php'
});
Ответ 5
Это случилось со мной однажды. Возможно, это разрешение папки.
Я устанавливаю разрешение сервера/php/файлов для чтения и записи, и он работает.
Ответ 6
Это связано с тем, что post_max_size и upload_max_filesize слишком малы, и поскольку он использует blob для отправки данных файла, он генерирует эту ошибку. Я увеличил их в своем php.ini и теперь работает как шарм
Ответ 7
Это случилось со мной. Я использую PHP на сервере Linux. Я обнаружил, что в коде в 4 или 5 местах были обратные косые черты "\", и они вызывали ошибки. Сделайте это:
- Откройте копию /server/php/UploadHandler.php в редакторе
- Сделайте поиск обратной косой черты:\
- Обратите внимание на каждое расположение обратного слэша.
- Если это после слова "новый" и перед вызовом обработчику вы можете удалите обратную косую черту.
Проверить строки 308, 790, 814, 816, 819, 822, 825, 828, 831, 836, 842, 895, 915, 973, 981 и 1058. Все вызовы Imagick(); похоже, перед ними.
Я удалил все эти обратные косые черты и не должен был отключать отчет об ошибках.
Пример:
Найти код:
$file = new \stdClass();
Заменить на:
$file = new stdClass();
Ответ 8
Vou deixar outra solução disponível caso alguém tenha o mesmo problemma. В качестве примера вы можете указать, что вы делаете это в качестве разрешения, как эскизы, так и проблемы с разрешением. Adicione permissões de leitura e gravação a estes diretórios.
Ответ 9
Вот лучший ответ, у меня была та же проблема, но после этих шагов я мог легко увидеть ошибку.
1- Открытый отладчик: F12
2- Перейти к вкладке сети
3- Сделать загрузку
4- Вы должны увидеть запрос, который был отправлен на вкладке Сеть
5- Нажмите на эту ошибку
6- Откроется новое окно с вкладкой для ответа от сервера. Этот ответ, скорее всего, будет неким сообщением об исключении.
Спасибо StephanC
Ответ 10
У меня была эта проблема в php 5.6, но не в php 5.3. Я "решил" эту проблему, отредактировав уровень сообщений об ошибках в файле upload.php:
//error_reporting(E_ALL | E_STRICT);
error_reporting(E_STRICT);