2017-12-04 271 views
8

axios POST Żądanie trafia na adres URL kontrolera, ale ustawia wartości null na moją klasę POJO, kiedy przechodzę przez narzędzia programistyczne w chrome, ładunek zawiera dane. Co ja robię źle?axios post request przesłanie danych formularza

Axios POST Zapytanie:

var body = { 
       userName: 'Fred', 
       userEmail: '[email protected]' 
       } 

     axios({ 
       method: 'post', 
       url: '/addUser', 
       data: body 
      }) 
      .then(function (response) { 
       console.log(response); 
       }) 
       .catch(function (error) { 
       console.log(error); 
      }); 

Przeglądarka Response:

enter image description here

Jeżeli ustawić nagłówki jak:

headers:{ 
    Content-Type:'multipart/form-data' 
} 

Żądanie powoduje błąd polegający na błędzie w księgowaniu danych wieloczęściowych/danych formularzy. Nagłówek Content-Type nie zawiera granicy

Jeśli złożę takie samo żądanie u listonosza, to działa poprawnie i ustawia wartości na moją klasę POJO.

Czy ktoś może wyjaśnić, jak ustawić granicę lub jak wysłać dane formularza za pomocą osi.

Odpowiedz

11

Można zakładać Axios danych za pomocą FormData() jak:

var bodyFormData = new FormData(); 

a następnie dodać pola do formularza chcesz wysłać:

bodyFormData.set('userName', 'Fred'); 

a następnie można użyć metody Axios pocztowy (Możesz go odpowiednio zmienić)

axios({ 
    method: 'post', 
    url: 'myurl', 
    data: bodyFormData, 
    config: { headers: {'Content-Type': 'multipart/form-data' }} 
}) 
    .then(function (response) { 
     //handle success 
     console.log(response); 
    }) 
    .catch(function (response) { 
     //handle error 
     console.log(response); 
    }); 
      } 

Możesz przeczytać więcej Here

+0

okrzyki:) - zadziałało to dla mnie !! wielkie dzięki ... –

+0

Cieszę się, że mogę Ci pomóc :) – Aaqib