【问题标题】:400 bad request while sending data with jquery ajax in spring framework?在spring框架中使用jquery ajax发送数据时出现400个错误请求?
【发布时间】:2015-11-19 13:49:51
【问题描述】:

我在从 jquery ajax 提交 json 数据时遇到一些问题。我用谷歌搜索了一些类似的问题,但没有一个对我有用。

            $.ajax({
                type : "POST",
                contentType : "application/json",
                url : "save-routes",
                data : JSON.stringify(routeObject),
                dataType : 'json',
                timeout : 100000,
                success : function(status) {
                    console.log("SUCCESS ADDING ROUTE DATA");
                    return status;
                },
                error : function(e) {
                    console.log("ERROR WHILE ADDING ROUTE DATA");
                    return false;
                },
                done : function(e) {
                    console.log("DONE");
                    //return true;
                }
            });

routeObejct Json 格式:

{name:"value", data:["value1","value2"...]}

弹簧控制器:

    @JsonView(Views.Public.class)
    @RequestMapping(value = "/save-routes", method = RequestMethod.POST)
    public @ResponseBody boolean loadRoutes(@RequestBody Route route) {
        //codes
        return status;
    }

我不断收到此错误:

POST http://localhost:8181/SYBusWebApp/save-route 400 Bad Request 6ms

路线等级:

public class Route {

    @JsonView(Views.Public.class)
    private String name;

    @JsonView(Views.Public.class)
    private ArrayList<stop> routeStops;

    private String updatedRouteName;
    private ArrayList<String> addedRouteStopNames;

    //getters and setters
}

停止类:

public class Stop {

    @JsonView(Views.Public.class)
    private String name;

    @JsonView(Views.Public.class)
    private float latitude;

    @JsonView(Views.Public.class)
    private float longitude;

    private String updatedName; 

//getters and setters
}

【问题讨论】:

  • 你的 Route 对象是什么样子的?
  • 控制台日志输出会更容易指出您的错误。在 ajax URL 参数中使用/save-routes。同时发布您的路线课程。
  • @Jeroen / 幸运,我已经添加了路由类。
  • JSON 负载 JSON.stringify(routeObject) 和类 Route 之间一定存在一些属性不匹配。请验证
  • 那么{name:"value", data:["value1","value2"...]} 是如何映射到您的 Route 对象的...?我在您的 Route 对象中看不到 data 属性

标签: javascript json ajax spring


【解决方案1】:

您的 Route 对象似乎与您的 JSON 负载不匹配。

{name:"value", data:["value1","value2"...]}

在您的情况下,我希望您的 JSON 有效负载中有一个嵌套的 Stop 对象集合,用于 routeStops:

{
   name:"value", 
   routeStops:[
       {
         "name":"test",
         "latitude": 3.124
       },
       ....
   ],
   ...
}

【讨论】:

  • 感谢您指出这一点。 JSON 格式的结构存在问题,现在它可以正常工作。再次感谢。 :)
猜你喜欢
  • 2019-08-28
  • 2016-01-06
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多