Ошибка JSON.parse

Обсуждение других вопросов связанных с веб-разработкой
spocher102
Сообщения: 7
Зарегистрирован:
15 мар 2016, 00:09

Ошибка JSON.parse

spocher102 » 15 мар 2016, 00:15

Mozilla выдаёт ошибку SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data при запуске на локальном сервере. При этом тот же код на реальном сервере работает на ура. В чем может быть дело?
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Re: Ошибка JSON.parse

Asmodey » 15 мар 2016, 10:44

Думаю, надо смотреть в сам ошибочный json.
КО.
s1mplyV
Сообщения: 13
Зарегистрирован:
10 фев 2016, 15:05

Re: Ошибка JSON.parse

s1mplyV » 15 мар 2016, 13:57

Возможно не хватает памяти... проверить сколько в php.ini, memory_limit стоит на хостинге и на локальном.
AVATOR
Сообщения: 116
Зарегистрирован:
23 май 2013, 00:25
Откуда: Ukraine

Re: Ошибка JSON.parse

AVATOR » 15 мар 2016, 18:17

Проверь валидность json-а тут http://jsonlint.com/
Если он валидныый то добавь сюда пример и мы сможем тебе сказать что не так.
spocher102
Сообщения: 7
Зарегистрирован:
15 мар 2016, 00:09

Re: Ошибка JSON.parse

spocher102 » 15 мар 2016, 18:31

$(document).ready(function(){
	var imagesCount = 0;
	var maxImages = 6;
	var imagesList = {};
$(function () {
      var $image = $('#image');

      $('#modal').on('shown.bs.modal', function () {
	$('.controls').hide();
	$('.progress').hide();
        $image.cropper({
          built: function () {
          }
        });
      }).on('hidden.bs.modal', function () {
	$('#submit-avatar-button').attr('disabled', 'true');
	$image.attr('src', '');
        $image.cropper('destroy');
      });
	$image.on('load', function(){
	    		$image.cropper({
			aspectRatio: 1,
			crop: function(data){
				var d = $image.cropper('getData');
				d.filename = $image.attr('src');
				$('#avatar-data').val(JSON.stringify(d));
			},
			dragMode: 'crop',
			autoCrop: true,
 			autoCropArea: 1,
			movable: false,
			scalable: false,
			zoomable: false,
			toggleDragModeOnDblclick: false,
			background: false,
			viewMode: 0,
			minCropBoxWidth: 100,
			minCropBoxHeight: 100
		});
                $('#submit-avatar-button').removeAttr('disabled');
	});
	$('.r_left').on('click', function(){
		$image.cropper('rotate', -90);
	});
	$('.r_right').on('click', function(){
		$image.cropper('rotate', 90);
	});

      $('#avatar-file').bind('change', function(){
	var data = new FormData();
	var error = '';
	jQuery.each($('#avatar-file')[0].files, function(i, file) {

            if(file.name.length < 1) {             	
               error = error + ' Файл имеет неправильный размер! ';             
            }
            data.append('file-'+i, file);
	});
	$.ajax({
	    url: '/modules/upload_resize.php',
	    data: data,
	    cache: false,
	    contentType: false,
	    processData: false,
	    type: 'POST',error: function (xhr, ajaxOptions, thrownError) {
//         	alert(xhr.responseText);
// 	        alert(thrownError);
	    },
	    xhr: function () {
	        var xhr =  $.ajaxSettings.xhr();
	        xhr.upload.addEventListener("progress", function (evt) {
	            if (evt.lengthComputable) {
	                var pB = $('.progress-bar'), percentComplete = evt.loaded / evt.total, progLabel = Math.round(percentComplete * 100) + "%";
	                pB.attr('style', 'width: '+progLabel);
			pB.text(progLabel);
	            }
	        }, false);
	        return xhr;
	    },
	    beforeSend: function () {
	        $('.progress').show();
		$('.controls').hide();
	    },
	    complete: function () {
		$('.progress-bar').text('Готово.');
	        $('.progress').delay(2000).fadeOut(500);
		$('.controls').show();
	    },
	    success: function(data){
		$image.cropper('destroy');
		$image.attr('src', data);
	    }
	});
	});
	$('#submit-avatar-button').on('click', function (){
		var imageList = $('#image_selection'), selectImage = imageList.children('#select');
		var data = $('#avatar-data').attr('value');
		$.ajax({
			url: '/modules/addavatar.php',
			data: {'avatar-data':data},
			type: 'POST',
			error: function(xhr, ajaxOptions, thrownError){
//         	alert(xhr.responseText);
// 	        alert(thrownError);
			},
			success: function(data){
				data = JSON.parse(data);
				var n = $('<li id="'+data.filename+'"></li>').insertBefore(selectImage);
				n.append('<img width="50" src="data:image/jpeg;base64,'+data.mini+'" />');
				imagesList[data.filename] = true;
				$('<button type="button" class="btn btn-danger pull-right">Удалить</button>').appendTo(n)
				.on('click', function(){
					imagesList[n.attr('id')] = false;
					n.remove();
					imagesCount--;
					if (imagesCount > 0){
						$('#sendimages').removeAttr('disabled');
					} else {$('#sendimages').attr('disabled', true);}
					$('#image-selection-button').show();
				});
				imagesCount++;
				if (imagesCount>=maxImages){
					$('#image-selection-button').hide();
				}
				if (imagesCount > 0){
					$('#sendimages').removeAttr('disabled');
				} else {$('#sendimages').attr('disabled', true);}
				$('button[data-dismiss="modal"]').click();
			}
		});
	});
	$('#sendimages').on('click', function (){
		$('form#hidden').children('input[type="hidden"]').attr('value', JSON.stringify(imagesList));
		$('form#hidden').children('input[type="submit"]').click();
	});
    });
});

function selectImage(){
	$('#avatar-file').click();
}
http://jsonlint.com/ Ошибку показывает:
Error: Parse error on line 1:
$(document).ready(fu
^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
, а как ее исправить не могу допереть. Главное на реальном хосте работает все.
Вложения
Screenshot_1.png
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Re: Ошибка JSON.parse

Asmodey » 15 мар 2016, 18:40

"....$(document).ready(function(){..." - Это на что ругается, или что ругается?
spocher102
Сообщения: 7
Зарегистрирован:
15 мар 2016, 00:09

Re: Ошибка JSON.parse

spocher102 » 15 мар 2016, 18:43

По ходу на что ругается.

Не объяснимая фигня какая-то :twisted:
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Re: Ошибка JSON.parse

Asmodey » 15 мар 2016, 19:32

Так оно совсем на json не похоже.
spocher102
Сообщения: 7
Зарегистрирован:
15 мар 2016, 00:09

Re: Ошибка JSON.parse

spocher102 » 15 мар 2016, 19:40

Да я и рад бы, суть то в том, я скрипт на фрилансе закызывал, мне один сделал, залил на хост. (там все работает), и слился куда то.
А мне что бы прилепить к своему сайту надо что бы на локалке под openserverom работало. Я скрипт скачал, запускаю на локалке, и на тебе эта ошибка. И вот в чем дело не пойму, то ли openserver тупит, то ли код неверен(хотя он работает на хосте). Вот как разобраться теперь?

Поэтому JSON не JSON мне роли не играет. Как его работать заставить на локалке?

Отладчик выдает при запуске с локалки:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

И не работает ничего

Исходя из того что на реальном хосте работает, предполагаю что дело в openserver. Только что поправить не представляю. Помогите плиз.
GeekHacker
Сообщения: 120
Зарегистрирован:
24 авг 2015, 15:22

Re: Ошибка JSON.parse

GeekHacker » 15 мар 2016, 21:08

Вы уверены, что в JSON.parse() передаёте именно данные в json-формате?
И, между прочем, отладчик ругается именно на первую строку данных, а не на первую строку скрипта:
неожиданный символ в строке 1 столбца 1 из данных json.

Так что не в том направлении копаете.

Проверяйте что прилетает в ответ на ajax-запрос от скрипта /modules/addavatar.php
Ответить