在Spring Framework中使用Ajax发送数据时出现400错误的请求

MJ82:

试图将JavaScript对象传递给Spring MVC。我收到400错误的请求错误。尝试了所有不同的方法,但仍然没有运气。我已经附加了Controller,我在JS和Java中传递的对象以及响应。将不胜感激。当我将@RequestBody更改为@ModelAttribute时,我在控制器中接收了参数,但整数为零,数组为空。

控制者

    @RequestMapping(value="/getInstrumentsByTypeMakeModel" , method=RequestMethod.GET)
    public @ResponseBody List<Instrument> getInstrumentsByTypeMakeModel(@RequestBody SearchInstrument search) {
     // do Something and create searchResult;   
    return searchResult;
}

的JavaScript

var searchInstrument = {

    operator: siteOperator,
    companyId:loggedInUserCompanyId ,
    isServiceProvider:isServiceProvider ,
    types:selectedType,
      makes:selectedMake,
      models:selectedModel,
      typeOthers:selectedTypeOther,
      makeOthers:selectedMakeOther,
      modelOthers:selectedModelOther

    };



     jQuery.ajax({
         url:server_name+ "/getInstrumentsByTypeMakeModel",
         type: "GET",
        dataType: "JSON",
        data:JSON.stringify(searchInstrument),   
         contentType: 'application/json; charset=utf-8',
         success: function(resultData) {
             console.log(resultData);
            },
             error: function(jqXHR, status) {
                 // error handler

            }
        }); 

SearchInstrument类

public class SearchInstrument  {
    public SearchInstrument(){

    }

        public SearchInstrument(int operator,int companyId, boolean isServiceProvider,
                List<Integer>  types,List<Integer>  makes,  List<Integer>  models,
                List<String>  typeOthers,List<String>  makeOthers,List<String>  modelOthers
                ){

this.operator=operator;
this.companyId=companyId;
this.types=types;
this.makes=makes;
this.models=models;
this.typeOthers=typeOthers;
this.makeOthers=makeOthers;
this.modelOthers=modelOthers;
        }
        private int operator;
        private int companyId;
        private boolean isServiceProvider;
        private List<Integer>  types=new ArrayList<Integer> ();
        private List<Integer>  makes=new ArrayList<Integer> ();
        private List<Integer>  models=new ArrayList<Integer> ();    
        private List<String>  typeOthers=new ArrayList<String> ();
        private List<String>  makeOthers=new ArrayList<String> ();
        private List<String>  modelOthers=new ArrayList<String> ();

//getters and setters       

    }

[这是参数] [ https://i.stack.imgur.com/2cxde.png]

[这是URL:] [ https://i.stack.imgur.com/BPMaS.png]

克里斯托斯·卡拉帕帕斯(Christos Karapapas):

我并不完全确定,但是结合GET请求并尝试传递一个对象似乎不是最好的主意,这就是为什么searchController在第二张图片中在URL上看到JS对象的原因

以下问题有更详尽的解释。

我认为您应该尝试将其转换为POST请求。

或者,如果出于某种原因仍希望将其保留为GET,则应在URL中将对象作为参数传递,并在控制器中使用@RequestParam。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Spring MVC中使用modelAttribute进行表单提交时在Spring MVC中上传多个文件时出现400错误的请求

使用Spring MVC验证模型属性时出现400错误的请求

在Spring Boot中使用Jersey进行文件上传时遇到400错误请求

如何在Spring Framework中使用参数发送和接收ajax请求?

发送请求到RestControler Spring MVC时,错误的请求400错误

Spring Ajax调用上的400错误请求

在对Spring控制器的Ajax调用中出现400错误的请求错误

尝试使用 Spring JPA 为带有外键的 JSON 对象发送 POST 请求时出现重复或空错误

将JSON传递给Spring控制器时出现400(错误请求)

将带有Spring RestTemplate的byte []上传到SpringMVC rest端点时出现400错误的请求

在Spring项目中使用@ModelAttribute时出现SpringInputGeneralFieldAttrProcessor错误

在Spring Boot中使用@EnableAutoConfiguration时出现名称错误

400(错误请求)错误-使用JQuery AJAX上传Spring MVC文件

Spring MVC + Ajax错误400

使用 spring 安全时请求错误

在Spring MVC应用程序中使用Jquery发送多个参数Ajax字符串化请求时,不存在必需的字符串参数'querycontent'

使用 Spring Boot 时出现 400 Bad Request

当请求中没有发送正文时,Java / Spring>使用@RequestBody处理控制器方法的错误请求响应

Spring RestController POST 400错误请求

对Spring RestTemplate POST收到400错误的请求

Spring,Angular.js 400 错误请求

使用php发送GET请求时出现HTTP 400错误请求错误

在 Spring Boot 中使用自定义异常处理时 .jpg 出现 500 错误?

在Grails应用中使用Spring Security Rest插件调用登录时出现401未经授权的错误

当我在枚举中使用属性值时出现 Spring Boot 错误

Spring Integration +过滤器+向REST控制器发送400错误请求

发送Ajax请求时出现500错误

使用 Node.js/got 库发送 GET 请求时出现“400 - 错误请求”

Spring JPA 数据:Eclipse 中的 Querydsl 在使用查询 dsl 类时出现编译错误