Опубликовать запрос без заголовка границы - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь отправить файл csv на сервер.Я использую FileReaderAPI, чтобы загрузить файл и затем отправить его через ajax.Но я получаю следующую ошибку:

Для запроса 'POST / api / upload' [Отсутствует заголовок границы]

JS

$('#upload-file-btn').on('click', function(e){
      e.preventDefault();

      var file = document.getElementById('input_file').files[0];
      console.log(file);
      reader = new FileReader();
      reader.onload = function () {
          var source = reader.result;
          var payload = {source: source};
          console.log(source);
          $.ajax({
           url:"http://localhost:9000/api/upload",
           type:"POST",
           data: JSON.stringify(payload),
           success: function(data){
              console.log(data);
           }
         });

      }
      reader.readAsText(file);
});

Некоторые решения предполагают включение заголовка "Content-Type" : "multipart/form-data" вручную.Который я не использую, но все еще получаю вышеупомянутую проблему.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Если вам нужно отправить данные в виде файла , вы должны использовать объект FormData для отправки данных из нескольких частей / данных формы через ajax.

     var fd = new FormData();
     fd.append('source', $('#input_file')[0].files[0]);
     $.ajax({
       url:"http://localhost:9000/api/upload",
       type:"POST",
       data: fd,
       contentType: false,
       processData: false,
       success: function(data){
          console.log(data);
       }
     });
0 голосов
/ 02 октября 2018

Попробуйте следующее:

$.ajax({
       url:"http://localhost:9000/api/upload",
       type:"POST",

       contentType: "application/json; charset=utf-8",
       dataType: "json",

       data: JSON.stringify(payload),
       success: function(data){
           console.log(data);
       }
     });
  });

или посмотрите на Jquery Ajax Отправка json на веб-сервис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...