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);