Загрузчик файлов Jquery blueimp, неожиданный токен/персонаж

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

Я использовал загрузчик файлов (версия 9.8.0) @ http://blueimp.github.io/jQuery-File-Upload/

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

В Google Chrome пишет: "SyntaxError: Unexpected token ‹"
в Mozilla FireF. он говорит: "SyntaxError: JSON.parse: неожиданный символ в строке 1, столбце 1 данных JSON"

Я искал некоторые решения, но не могу понять, как применять эти решения. И кстати, он добавляет изображение, несмотря на ошибку.


person Jeremy23    schedule 06.11.2014    source источник
comment
Помогите мне, пожалуйста, кто-нибудь?   -  person Jeremy23    schedule 01.12.2014
comment
Могу ли я узнать, какую версию вы используете php, ruby, node.js.............   -  person Bik    schedule 10.06.2015
comment
Не могли бы вы показать ответ, который вы получаете от сервера, или поделиться своим URL-адресом.   -  person Mitul    schedule 10.06.2015


Ответы (9)


Метод, который вы вызываете, выдает страницу ошибки с html (начиная с ‹ и не может быть проанализирован в JSON), если вы посмотрите на вкладку сети в своем браузере.

Например, в Google Chrome:

  1. Открыть отладчик: F12
  2. Перейти на вкладку сети
  3. Выполните загрузку
  4. Вы должны увидеть запрос, который был отправлен на вкладке «Сеть».
  5. Нажмите на этот запрос об ошибке
  6. Это откроет новое окно с вкладкой для ответа от сервера. Этот ответ, скорее всего, будет своего рода сообщением об исключении.

У меня была аналогичная проблема в ASP.Net MVC с другим загрузчиком, когда один из параметров был отправлен как нулевой, и он не мог быть нулевым на контроллере.

person StephanC    schedule 10.06.2015
comment
Не понимаю, почему кто-то проголосовал за вас, потому что именно это и происходило: моя структура выдавала ошибку HTML. - person qwertzman; 11.10.2015

SyntaxError: JSON. parse: неожиданный символ в строке 1 столбце 1 данных JSON проверьте этот SO и посмотрите, связана ли ваша проблема.
По сути, это может означать, что возвращаемое сообщение об успешном завершении не имеет надлежащей разметки HTML и, следовательно, браузер не может их отображать.

person Codebender    schedule 04.06.2015

Скорее всего, вы пытаетесь JSON.parse получить сообщение об ошибке, предоставленное сервером, или другой ответ, отличный от JSON, и это, вероятно, HTML, учитывая первый символ, который он заблокировал.

Я бы открыл консоль, получил страницу для создания ошибки, нашел запрос на вкладке «Сеть» инструментов разработчика и проверил вкладку ответа запросов на загрузку, чтобы увидеть, что на самом деле возвращается.

Надеюсь, просмотр ответа приведет вас к решению (например, к исправлению сообщения об ошибке) или к более конкретному вопросу, который можно задать.

person Noah Freitas    schedule 10.06.2015

Я решил эту проблему, отредактировав 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'
});
person ptCoder    schedule 24.08.2015

Это случилось со мной однажды. Возможно, это разрешение папки. Я установил разрешение server/php/files на чтение и запись, и это работает.

person edmundpie    schedule 06.01.2015

Это связано с тем, что post_max_size и upload_max_filesize слишком малы, и поскольку он использует большой двоичный объект для отправки данных файла, он генерирует эту ошибку. Я увеличил их в своем php.ini и теперь работает как шарм

person Lau    schedule 20.01.2015

Это случилось и со мной. Я использую PHP на сервере Linux. Я обнаружил, что на самом деле в коде были обратные косые черты «\» в 4 или 5 местах, и они вызывали ошибки. Сделай это:

  1. Откройте свою копию /server/php/UploadHandler.php в редакторе.
  2. Выполните поиск обратной косой черты: \
  3. Обратите внимание на каждое расположение обратной косой черты.
  4. Если это после слова "новый" и перед вызовом обработчика, вы можете убрать обратную косую черту.

Проверьте строки 308, 790, 814, 816, 819, 822, 825, 828, 831, 836, 842, 895, 915, 973, 981 и 1058. Все вызовы Imagick(); кажется, есть один перед ними.

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

Пример:

Найти код:

$file = new \stdClass();

Заменить:

$file = new stdClass();
person Carl Powell III    schedule 22.08.2017

Вот лучший ответ, у меня была та же проблема, но, следуя этим шагам, я легко увидел ошибку.

1- Открыть отладчик: F12

2- Перейти на вкладку сети

3- Сделайте загрузку

4- Вы должны увидеть отправленный запрос на вкладке «Сеть».

5- Нажмите на этот запрос об ошибке

6- Это откроет новое окно с вкладкой для ответа от сервера. Этот ответ, скорее всего, будет своего рода сообщением об исключении.

Спасибо StephanC

person Paul TSL    schedule 27.06.2019

У меня была эта проблема в php 5.6, но не в php 5.3. Я «решил» эту проблему, отредактировав уровень сообщения об ошибках в файле upload.php:

//error_reporting(E_ALL | E_STRICT); error_reporting(E_STRICT);

person MatMut    schedule 10.05.2016