Задать вопрос
heksen
@heksen

Почему два раза загружает?

В всвоём проекте использую AjaxUpload, но фишка в том, что изображение загружается почему-то 2 раза. Что я делаю не так. Для проверки использую alert. Вот код:

$( "#button_load" ).ajaxUpload(
		{	
			url:  "upload_image.php",
			name: "file",
			onSubmit: function() 
			{
				NProgress.start();
			},
			onComplete: function( result ) 
			{
				console.log( result );
				var object = JSON.parse( result );
				$.each( object , function(k, item)
				{
					$( "#foto_block" ).html( "<img src = temp/" + item.name + " width = '350' height = '350' class = 'displayed'>" );
					alert( "sdsd" );
				});
				
				NProgress.done();
			}
		});
  • Вопрос задан
  • 2543 просмотра
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 4
1. Может быть где-то еще в коде запрятался такой же обработчик?
2. На сервер файл точно загружается дважды?
Ответ написан
Комментировать
fsdsdfsfdsfsdfsdfsdfsdfsd
@fsdsdfsfdsfsdfsdfsdfsdfsd
Unknown
Попробуйте так:

$( "#button_load" ).ajaxUpload(
    { 
      url:  "upload_image.php",
      name: "file",
      onSubmit: function() 
      {
        NProgress.start();
      },
      onComplete: function( result ) 
      {
        console.log( result );
        var object = JSON.parse( result );
        $.each( object , function(k, item)
        {
          if(item.name) {
            $( "#foto_block" ).html( "<img src = temp/" + item.name + " width = '350' height = '350' class = 'displayed'>" );
            alert( "sdsd" );
          }
        });
        
        NProgress.done();
      }
    });
Ответ написан
hedint
@hedint
Senior front-end developer
Вы сами на свой вопрос ответили комментарием
{
"answer":"OK",
"file":
{"name":"Hydrangeas.jpg","type":"image\/jpeg","tmp_name":"F:\\tmp\\php1CE5.tmp","error":0,"size":595284}
}
вот ваш json объект, который вы обходите в цикле (в jquery each)
в первый раз значение k item в цикле
answer, ok
второй раз -
file - object.

Вам вообще не нужен тут никакой цикл (each), достаточно object.file.name.
объект файла в response сервера - один.
Ответ написан
Комментировать
iLeonidze
@iLeonidze
xbooster.ru
Один раз была такая же проблема)
Как оказалось, всё тривиально. На проекте был реализован CrossDomain-requests, поэтому браузер сначала кидал запрос на файл методом OPTIONS и только потом методом, которым было необходимо изначально. Проверьте заголовки своих запросов. Если у Вас такая же ситуация, то это никак не исправляется ибо CrossDomain Policy.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽