Как мне решить эту проблему с формой с помощью JSP с помощью AJAX?

#java #ajax

#java #ajax

Вопрос:

Я хочу отправить данные из формы в сервлет с помощью Ajax, но когда я проверил данные, которые были сериализованы с помощью функции jQuery .serialize(), я заметил, что она не принимает значение поля file . В предыдущем тесте я получил сообщение об ошибке с таким сообщением: запрос был отклонен, поскольку не было найдено данных из нескольких частей

Ниже приведен HTML-код формы:

 <form id="frmCrcnCaso" class="form-horizontal" enctype="multipart/form-data">
   <input id="txtNoVlt" name="txtNoVlt" type="text" class="form-control">
   <input id="txtNmr" name="txtNmr" type="text" class="form-control">
   <input id="txtFchOfc" name="txtFchOfc" type="date" class="form-control">
   <input id="flAcvAjt" name="flAcvAjt" type="file" class="form-control"/>
</form>
<button id="btnGuardar" type="button" class="btn btn-lg btn-primary">
    Guardar
</button>
 

И это код javascript:

 $("#btnGuardar").on("click",function(){
    ValidarGuardado();
});

function ValidarGuardado(){
  ...
  // Activar el guardado
  Guardar();         
}// </editor-fold>

function Guardar(){
     $(...).append("...
         <button id='btnGdrCaso' type='button' class='btn btn-primary'><i class='fa fa-check'></i> Guardar</button>n
      ...");

     $(...).modal();

     $("#btnGdrCaso").on("click",function(){
         ...
         var datosCaso = $("#frmCrcnCaso").serialize();
         ...
         $.ajax({
             url: "GuardarCaso" // Servlet name,
             type: "POST",
             contentType : false,
             data: datosCaso,             
             success:function(r){
                 if(r === "1"){
                     ...
                 }else if(r === "2"){
                     ...
                 }else{
                     ...
                 }
             },
             error:function(r){
                 ...
             }
         });
     });
}
 

Комментарии:

1. contentType : false точно не помогает

2. Вы пробовали использовать ContentType: «multipart / form-data» в своем запросе? Не уверен, поможет ли это.

3. Да, я это сделал. Но дело в том, что поле file, похоже, не включается в другие, когда я отправляю данные.