我在弹簧控制器上使用简单的jquery ajax并返回错误
error: "Unsupported Media Type"
exception: "org.springframework.web.HttpMediaTypeNotSupportedException"
message: "Content type 'applicatin/json;charset=UTF-8' not supported"
但是当我使用邮递员发送请求时它可以正常工作。
所以这是我的控制器:
@RequestMapping(method=RequestMethod.POST, value="/bbl/submit")
@ResponseBody
public String saveEmail(@RequestBody BblUserSms model) {
return "hello";
}
这是ajax:
$('#btnSubmit').on('click', function() {
$.ajax({
url: '/bbl/submit',
method: 'POST',
contentType: 'application/json',
data: {
phoneNumber: $('#phoneNumber').val();,
email: $('#email').val(),
},
contentType: 'applicatin/json',
success: function(res) {
console.log(res);
},
error: function(res) {
console.log(res);
}
})
});
当我发送邮递员请求时,我将内容类型设置为头文件中的application / json,然后就身体而言,我只使用原始类型,如下所示:
{ "phoneNumber": "123456789", "email": "something@example.com" }
它只是有效。控制器中的模型是从json创建的,但是当我通过ajax发送时,它只是没有到达控制器。
这可能是什么问题?
答案 0 :(得分:1)
您在请求中有两个contentType
属性,第二个属性有一个错字,这会引起问题。 ;
对象中val()
之后的data
也会引起问题。试试这个:
$('#btnSubmit').on('click', function() {
$.ajax({
url: '/bbl/submit',
method: 'POST',
contentType: 'application/json',
data: {
phoneNumber: $('#phoneNumber').val(),
email: $('#email').val(),
},
success: function(res) {
console.log(res);
},
error: function(res) {
console.log(res);
}
})
});
答案 1 :(得分:0)
检查模型是否有未在客户端json数据中使用的实体,然后在所有字段上方使用@JsonIgnore