독학퀸
964
2017-12-08 16:31:22 작성 2017-12-08 16:45:14 수정됨
4
1900

조건에 따라 ajax가 실행, 미실행 되게 할 수 있을까요?


123

-4
0
  • 답변 4

  • 아침저녁
    67
    2017-12-08 16:40:54

    업로드를 실행시킨 부분은 success 콜백 함수 안이 아니라,

    $.ajax 가 시작 되는 부분을 간단히 ajax 가 실행되는 부분이라고 생각하셔야 할것 같습니다.

    (완벽하게 그곳이 시작지점이라고는 할수 없지만...)

    success 콜백 함수 안에서는 해당 ajax가 성공적으로 완료되었을때, 취할 액션이 들어가는 곳이기 때문에

    success 콜백함수에서는 res 값을 0으로 초기화 시켜주셔야 하고, ajax 가 시작 될 때 res = 1; 으로 수정해주셔야 하것 같습니다.

    현재 if (res == 0) 문장 전에 이미 항상 res = 0으로 초기화를 해주시기 때문에 매번 ajax 가 계속해서 동작되는 구조입니다.

    var res = 0;
    $(".fileDrop").on("drop", function(event){
    			event.preventDefault();
    			
    			var files = event.originalEvent.dataTransfer.files;
    			var file = files[0];
    			
    			var formData = new FormData();
    			formData.append("file", file);
    			
    			console.log("1번 = " + res);
    			
    			if (res == 0){
                                    res = 1;
    				$.ajax({
    					  url: '/upload',
    					  data: formData,
    					  dataType:'text',
    					  processData: false,
    					  contentType: false,
    					  type: 'POST',
    					  success: function(data){
    						  var fileInfo = getFileInfo(data);
    						  var html = template(fileInfo);
    						  
    						  var str = "";
    						  
    						  $(".uploadedList").append(html);
    						  res = 0;
    						  console.log("2번 = " + res);
    					  }
    				});
    				 console.log("3번 = " + res);
    			} else {
                                     alert('업로드가 이미 진행중입니다.');
                            }
    		});

    직접 테스트는 못해보았습니다만... 해결되었으면 좋겠습니다~^^



  • 독학퀸
    964
    2017-12-08 16:45:03

    오 저도 방금 다시 생각한게 이거여가지구 테스트해봤습니다. 해결됐구요~ 해결했다고 댓글달려고 왔는데 .. 감사합니다!! 해결했어요..!

  • webmajm
    472
    2017-12-08 16:56:50

    해결후에 질문은 왜 지우는건가요?

  • ktsedd
    6k
    2017-12-08 17:16:55

    글삭제를 할수없는 이유는 해당 질문이 비슷한 상황을 겪는 개발자들에게

    검색이 되어서 조금더 원활한 정보를 교류하는 의도인것인데

    질문내용을 지우는건 혼자만 알면 땡이라는 이기적인 느낌이드네여 비추드림

  • 로그인을 하시면 답변을 등록할 수 있습니다.