我有ajax代码
/**
* 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将数据发送到控制器,它就会成功但是通过上面的ajax代码我得到400错误......
答案 0 :(得分:2)
您的data
属性是问题
您需要在数据中传递json对象才能使其正常工作
data : {username: 'username'}
答案 1 :(得分:0)
想把它写成评论,但还不能......
您的JQuery版本是什么?如果您使用Postman发布,您的设置是什么?
您是否也会提出请求和响应的网络请求?
尝试用括号括起数据:{'firstName:' ... }
我过去遇到了类似的问题(虽然没有弹簧),并且必须在控制器中将消耗设置为'application/json; charset=utf-8'
(尽管Intellij将此标记为不正确)