2016-03-08 62 views
0

我有Ajax代码为400错误的请求错误去春来RestController

/** 
* Ajax Logic for submitions 
* */ 
$.ajax({ 
    contentType : 'application/json; charset=utf-8', 
    type: 'POST', 
    url: '/domain/insert/', 
    dataType : 'json', 
    data : 'firstName:' + $("#first_name").val() /*+ "&lastName;=" + $("#lastName").val() + "&email;=" + $("#email").val()*/, 
    success : function(callback){  
     console.log("Data inserted........."); 
    }, 
    error : function(){ 
     console.log("Error........."); 
    } 
}); 

越来越控制台出把尽可能

POST http://localhost:8080/domain/insert/ 400 (Bad Request) 
Z.cors.e.crossDomain.send @ common.min.js:3 
J.extend.ajax @ common.min.js:3 
t.length.t.steps.onStepChanged @ forms_wizard.min.js:34 
J.event.dispatch @ common.min.js:2 
m.handle @ common.min.js:2 
J.event.trigger @ common.min.js:2 
J.fn.extend.triggerHandler @ common.min.js:2 
(anonymous function) @ wizard_steps.min.js:1 
c @ common.min.js:2 
d.fireWith @ common.min.js:2 
(anonymous function) @ common.min.js:2 
c @ common.min.js:2 
d.fireWith @ common.min.js:2 
a @ common.min.js:2 
c @ common.min.js:2 
d.fireWith @ common.min.js:2 
d.fire @ common.min.js:2 
J.extend.dequeue @ common.min.js:2 
i.complete @ common.min.js:2 
c @ common.min.js:2 
d.fireWith @ common.min.js:2 
I.l @ common.min.js:1 
J.fx.tick @ common.min.js:3 
forms_wizard.min.js:47 
Error......... 

在RestController我的插入方法是

@RequestMapping(value = "/question/", headers="Accept=*/*", consumes="application/json", method = RequestMethod.POST) 
    public ResponseEntity<Void> insert(@RequestBody User user) { 
     System.out.println("Creating " + user.getFirstName()); 
     service.save(user);   
     return new ResponseEntity<Void>(HttpStatus.CREATED); 
    } 

好吧,如果我使用Postman将POST数据发送到控制器,它会成功,但通过上述ajax代码,我会得到400错误.....

回答

2

data财产问题

你需要传递的数据的JSON对象,为了这个工作

data : {username: 'username'} 
0

想写这个作为一个评论,但还不能...
什么是您的JQuery版本,如果您发布邮递员,您的设置是什么?
您是否也会提供请求和响应的网络请求?
尝试在括号包裹数据:{'firstName:' ... }

我已经在过去也有类似的问题(无弹簧虽然),不得不设置消耗到'application/json; charset=utf-8'控制器(虽然标记的IntelliJ这是不正确的)