Javascript 415将json传递给java时不支持的格式
我需要将一个对象从JavaScript传递到Java控制器。我的做法如下:Javascript 415将json传递给java时不支持的格式,javascript,java,json,spring-mvc,Javascript,Java,Json,Spring Mvc,我需要将一个对象从JavaScript传递到Java控制器。我的做法如下: //java code @RequestMapping(value="/mailsend" , method=RequestMethod.POST) public int getBranchById(@RequestBody Modelmail details) throws IOException{ System.out.println(details); submitSuccess: function($for
//java code
@RequestMapping(value="/mailsend" , method=RequestMethod.POST)
public int getBranchById(@RequestBody Modelmail details) throws IOException{
System.out.println(details);
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
下面是javascript代码
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
甚至我也添加了以下依赖项:
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
org.codehaus.jackson
杰克逊地图绘制者
1.9.13
com.fasterxml.jackson.core
杰克逊数据绑定
2.5.3
现在,我没有按照我的期望得到Java中的Java对象。任何帮助都将不胜感激。要修复4xx不受支持的媒体,您可以通过在app.properties中设置以下行来激活Spring日志:
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
log4j.category.org.springframework=ALL
激活Spring日志后,再次发出相关请求并检查日志输出以查看错误所在。要修复4xx不受支持的媒体,您可以通过将以下行设置为app.properties来激活Spring日志:
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
log4j.category.org.springframework=ALL
激活Spring日志后,再次发出相关请求并检查日志输出以查看错误所在。更改ajax调用以包括内容类型标题,并对数据进行字符串化
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
url: './mailsend',
type: 'POST',
data: JSON.stringify(details),
cache: false,
dataType: 'json',
success: function() {
}
}
更改ajax调用以包括内容类型标题,并字符串化数据
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
var details={"name":name,"email":email,"phone":phone,"message":message}
//var obj = JSON.parse(details);
$.ajax({
url: "./mailsend",
type: "POST",
data: details,
cache: false,
success: function() {
}}
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
url: './mailsend',
type: 'POST',
data: JSON.stringify(details),
cache: false,
dataType: 'json',
success: function() {
}
}
您的ajax函数不会发送json字符串,它将发送formdata,要以json字符串的形式发送数据,您需要将其转换为json字符串json.stringify()。请尝试上面的注释,并在ajax查询中添加一个数据类型:“json”,以指定您在HeaderData中发送的内容:json.stringify(详细信息),数据类型:“json”,我添加了这两个东西,但仍然是same@user3273700您是对的,它将数据作为formdata发送,而应该作为有效负载发送,我想如何实现?您可以升级Modelmail类吗?您的ajax函数不会发送json字符串,而是发送formdata,要以json字符串的形式发送数据,需要将其转换为json字符串json.stringify()。尝试上面的注释,并在ajax查询中添加一个数据类型:“json”,以指定在headersdata:json.stringify(详细信息),数据类型:“json”中发送的内容,我添加了这两个东西,但仍然是same@user3273700您是对的,它将数据作为formdata发送,而应该作为有效负载发送,我想如何实现这一点??您可以升级您的Modelmail类吗?