programing

ajax formdata : 잘못된 호출

megabox 2023. 2. 11. 09:06
반응형

ajax formdata : 잘못된 호출

Symfony 2 업로드용 Ajax 스크립트를 만들려고 합니다.Chrome은 다음 오류를 반환합니다.

수집되지 않은 유형 오류:부정한 호출 jquery.min.js:4

제 생각엔...FormData오브젝트가 올바르게 설정되어 있지 않다(스크립트를 사용해 보겠습니다)..serialized():

$(document).ready(function() {
  $('#formImage').submit(function(event) {
    event.preventDefault();
    // appel Ajax
    alert("ajax");

    var input = document.getElementById("rasta_blogbundle_imagetype_file");
    console.log(input); 
    var formdata = false;  

    if (window.FormData) {  
        formdata = new FormData();
        console.log('formdata initialized ...');  
    }
    else{
        console.log('formdata not supported');
    }

    formdata.append('name',$('#rasta_blogbundle_imagetype_name').val());
    console.log(formdata);
    formdata.append('file',input);
    formdata.append('_token',$('#rasta_blogbundle_imagetype__token').val());
    console.log(formdata);    
    //alert(DATA);

    if (formdata){  
        $.ajax({
            url: $(this).attr('action'), // le nom du fichier indiqué dans le formulaire
            type: $(this).attr('method'), // la méthode indiquée dans le formulaire (get ou post)
            cache: false,
            //data : $(this).serialize(),
            data: formdata ,
            success: function(data) { // je récupère la réponse du fichier PHP
                $('#myModal').html(data);
                console.log('ok');
            }        
            //return false; //
        }); 
    }
  });
});

jQuery는 FormData 객체를 문자열로 변환하려고 합니다.이것을 $.ajax 호출에 추가합니다.

processData: false,
contentType: false

이 문제는 jquery가 내부적으로 데이터를 올바르게 직렬화하지 않아 데이터를 수정하지 못할 때 발생합니다.

cache : false,
dataType    : 'json',
processData : false,

아래 사항을 추가하는 것만으로 문제를 해결했습니다.

contentType: false,
processData: false,
cache: false,

언급URL : https://stackoverflow.com/questions/16501524/ajax-formdata-illegal-invocation

반응형