Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 415将json传递给java时不支持的格式_Javascript_Java_Json_Spring Mvc - Fatal编程技术网

Javascript 415将json传递给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

我需要将一个对象从JavaScript传递到Java控制器。我的做法如下:

//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类吗?