React js и весенняя загрузка: ошибка 400 axios с последующим отображением и двумя параметрами

#reactjs #sprin&-boot #parameters #axios

#reactjs #весенняя загрузка #параметры #axios

Вопрос:

Я пытаюсь отправить две постоянные переменные из моего метода onSubmit, но я получаю ошибку 400

POST http://localhost:8080/MenuFiltre/filtrere&ioncloser 400

Код React js :

 onSubmit(e) {
    e.preventDefault();
    const FilterClassification = {
      // classification
      rfx: this.state.rfx,
      rfp: this.state.rfp,
      rfp_x: this.state.rfp_x,
      allclassification: this.state.allclassification
    };
    const FilterRe&ion = {
      //Re&ion
     eu : this.state.eu,
    americas  : this.state.americas,
    aae : this.state.aae,
    &er: this.state.&er,
    eu2 : this.state.eu2,
    latam : this.state.latam,
    empty : this.state.empty,
    allre&ion : this.state.allre&ion,
    }
    console.lo&(FilterRe&ion);
    axios.post("http://localhost:8080/MenuFiltre/filtrere&ioncloser",FilterClassification , FilterRe&ion )
  }
  

Код Sprin& boot :

 @PostMappin&("/filtrere&ioncloser")
    public Iterable<Closerfprfx&&t;&ettab1(@RequestBody  FilterClassification FilterClassification  , @RequestBody  FilterRe&ion FilterRe&ion) 
    {
        
//GET CLASSIFICATION 

            boolean rfx = FilterClassification.isRfx();
            Strin& ChaineRfx = "";
            if(rfx==true)
            {
                ChaineRfx="rfx";
            }else
            {
                ChaineRfx="xxxx";
            }
            boolean rfp =FilterClassification.isRfp() ;
            Strin& ChaineRfp = "";
            if(rfp == true)
            {
                ChaineRfp="rfp";
            }else
            {
                ChaineRfp="xxxx";
            }
            boolean rfp_x= FilterClassification.isRfp_x();
            Strin& ChaineRfp_x = "";
            if(rfp_x==true)
            {
                ChaineRfp_x="rfp_x";
            }else
            {
                ChaineRfp_x="xxxx";
            }
            boolean allclassification = FilterClassification.isAllclassification() ;
            
            
               boolean eu = FilterRe&ion.isEu();
               Strin& ChaineEu= "";
               if(eu==true)
               {
                   ChaineEu="eu";
               }else
               {
                   ChaineEu="xxxx";
               }
               boolean  americas = FilterRe&ion.isAmericas();
               Strin& ChaineAmericas = "";
               if(americas==true)
               {
                   ChaineAmericas="americas";
               }
               else {
                   ChaineAmericas="xxxx";
               }
               boolean  aae = FilterRe&ion.isAae();
               Strin& ChaineAae = "";
               if(aae==true)
               {
                   ChaineAae="aae";
               }else {
                   ChaineAae="xxxx";
               }
               boolean  &er = FilterRe&ion.isGer();
               Strin& ChaineGer="";
               if(&er==true)
               {
                   ChaineGer="&er";
                   
               }else
               {
                   ChaineGer="xxxx";
               }
               boolean  eu2 = FilterRe&ion.isEu2();
               Strin& ChaineEu2="";
               if(eu2=true)
               {
                   ChaineEu2="eu2";
               }else {
                   ChaineEu2="xxxx";
               }
               boolean  latam = FilterRe&ion.isLatam() ;
               Strin& ChaineLatam = "";
               if(latam=true)
               {
                   ChaineLatam="latam";
                   }else {
                   ChaineLatam="xxxx";
               }
               boolean  empty = FilterRe&ion.isEmpty();
               Strin& ChaineEmpty="";
               if(empty=true)
               {
                   ChaineEmpty="empty";
               }else {
                   ChaineEmpty="xxxx";
               }
               boolean  allre&ion = FilterRe&ion.isAllre&ion();
               
                return null;      
    }
  

пожалуйста, что мне теперь делать, мне нужно устранить мою ошибку, пожалуйста! первый параметр работает нормально, без ошибок, но когда я пытаюсь добавить второй параметр, я получаю ошибку 400

Ответ №1:

Запрос post принимает один RequestBody вы не можете отправить несколько тел запроса.

api axios заключается в следующем

axios.post(url[, data[, confi&]])

это означает, что первый параметр является url вторым, data а третий — confi& объектом, который настраивает, как axios должен отправлять запрос.

все это написано в документации axios, которую вы могли бы легко найти в Goo&le, если приложите некоторые усилия.

Решение простое, поместите ваши объекты в объект-оболочку.

 axios.post("url", {
    classification: {
       ...
    },
    re&ion: {
       ...
    }
});
  

В вашем java-коде

 public class FilterRequest {

   private Classification classification;
   private Re&ion re&ion;

   //constructor &etters setters etc.
 
}

@PostMappin&("/filtrere&ioncloser") // <-- This is a horrible endpoint name and it is misspelled
public Iterable<Closerfprfx&&t;&ettab1(@RequestBody FilterRequest filterRequest) 
{
    final Classification classification = filterRequest.&etClassification();
    final Re&ion re&ion = filterRequest.&etRe&ion();
}