【问题标题】:React js and spring boot : axios error 400 with postmapping and two parameterReact js和spring boot:带有后映射和两个参数的axios错误400
【发布时间】:2020-08-10 09:22:59
【问题描述】:

我正在尝试从我的 onSubmit 方法发送两个常量变量,但我收到错误 400

POST http://localhost:8080/MenuFiltre/filtreregioncloser 400

代码反应 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 FilterRegion = {
      //Region
     eu : this.state.eu,
    americas  : this.state.americas,
    aae : this.state.aae,
    ger: this.state.ger,
    eu2 : this.state.eu2,
    latam : this.state.latam,
    empty : this.state.empty,
    allregion : this.state.allregion,
    }
    console.log(FilterRegion);
    axios.post("http://localhost:8080/MenuFiltre/filtreregioncloser",FilterClassification , FilterRegion )
  }

春季开机代码:

@PostMapping("/filtreregioncloser")
    public Iterable<Closerfprfx>gettab1(@RequestBody  FilterClassification FilterClassification  , @RequestBody  FilterRegion FilterRegion) 
    {
        
//GET CLASSIFICATION 

            boolean rfx = FilterClassification.isRfx();
            String ChaineRfx = "";
            if(rfx==true)
            {
                ChaineRfx="rfx";
            }else
            {
                ChaineRfx="xxxx";
            }
            boolean rfp =FilterClassification.isRfp() ;
            String ChaineRfp = "";
            if(rfp == true)
            {
                ChaineRfp="rfp";
            }else
            {
                ChaineRfp="xxxx";
            }
            boolean rfp_x= FilterClassification.isRfp_x();
            String ChaineRfp_x = "";
            if(rfp_x==true)
            {
                ChaineRfp_x="rfp_x";
            }else
            {
                ChaineRfp_x="xxxx";
            }
            boolean allclassification = FilterClassification.isAllclassification() ;
            
            
               boolean eu = FilterRegion.isEu();
               String ChaineEu= "";
               if(eu==true)
               {
                   ChaineEu="eu";
               }else
               {
                   ChaineEu="xxxx";
               }
               boolean  americas = FilterRegion.isAmericas();
               String ChaineAmericas = "";
               if(americas==true)
               {
                   ChaineAmericas="americas";
               }
               else {
                   ChaineAmericas="xxxx";
               }
               boolean  aae = FilterRegion.isAae();
               String ChaineAae = "";
               if(aae==true)
               {
                   ChaineAae="aae";
               }else {
                   ChaineAae="xxxx";
               }
               boolean  ger = FilterRegion.isGer();
               String ChaineGer="";
               if(ger==true)
               {
                   ChaineGer="ger";
                   
               }else
               {
                   ChaineGer="xxxx";
               }
               boolean  eu2 = FilterRegion.isEu2();
               String ChaineEu2="";
               if(eu2=true)
               {
                   ChaineEu2="eu2";
               }else {
                   ChaineEu2="xxxx";
               }
               boolean  latam = FilterRegion.isLatam() ;
               String ChaineLatam = "";
               if(latam=true)
               {
                   ChaineLatam="latam";
                   }else {
                   ChaineLatam="xxxx";
               }
               boolean  empty = FilterRegion.isEmpty();
               String ChaineEmpty="";
               if(empty=true)
               {
                   ChaineEmpty="empty";
               }else {
                   ChaineEmpty="xxxx";
               }
               boolean  allregion = FilterRegion.isAllregion();
               
                return null;      
    }

请问我现在应该做什么,我需要解决我的错误!第一个参数工作正常,没有错误,但是当我尝试添加第二个参数时,我得到错误 400

【问题讨论】:

    标签: reactjs spring-boot parameters axios


    【解决方案1】:

    一个 post 请求接受一个 RequestBody 您不能发送多个请求正文。

    axios api如下

    axios.post(url[, data[, config]])

    这意味着第一个参数是url,第二个是data,第三个是一个config对象,用于配置axios应该如何发送请求。

    所有这些都是用axios documentation 写的,如果你付出一些努力,你可以很容易地用谷歌搜索。

    解决方案很简单,将你的对象放在一个包装对象中。

    axios.post("url", {
        classification: {
           ...
        },
        region: {
           ...
        }
    });
    

    在你的 java 代码中

    public class FilterRequest {
    
       private Classification classification;
       private Region region;
    
       //constructor getters setters etc.
     
    }
    
    @PostMapping("/filtreregioncloser") // <-- This is a horrible endpoint name and it is misspelled
    public Iterable<Closerfprfx>gettab1(@RequestBody FilterRequest filterRequest) 
    {
        final Classification classification = filterRequest.getClassification();
        final Region region = filterRequest.getRegion();
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 2015-04-26
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多