繁体   English   中英

415不支持的媒体类型angularjs

[英]415 unsupported media type angularjs

我是Angular JS的新手。 我正在尝试使用angular js从jsp页面提交数据到spring mvc控制器。 我正在尝试将数据注入Pojo Object。 但是我得到了例外,说“ 415不支持”。 请帮助我哪里我做错了。

JSP页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Testing Tool</title>
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
<script type="text/javascript">
var apps=angular.module('sampleApps',[]);
apps.controller('formController',function($scope, $http)
        {

    $scope.register=function()
    {
        var name=$scope.name;
        var address=$scope.address;
        alert(name + " , "+address);
        var formData = {
                  name       : name,
                  address    : address
              };
         $http({
                method : "POST",
                url : "userdetails",
                contentType: 'application/json',
                mimeType: 'application/json',
                /*   data: {name: name,address:address} */  
                 data:formData
                }).then(function mySucces(response) {
                 //$scope.myWelcome = response.data;
                 alert("Success");
                }, function myError(response) {
                    alert(response);
                 // $scope.myWelcome = response.statusText;
              });   

    };

        });
</script>
</head>
<body data-ng-app="sampleApps">
 <div  ng-controller="formController">
        Name: <br/>
        <input type="text" name="name" ng-model="name"/><br/>
        Address: <br/>
        <input type="text" name="address" ng-model="address"/><br/>

        <input type="button" value="submit"  ng-click="register()">
 </div>
</body>
</html>

控制器:

@RequestMapping(value="/userdetails")
    public @ResponseBody User getUserDetails(HttpServletRequest request,@RequestBody User data)
    {
        System.out.println(data);
        return data;
    }

Pojo课程:

public class User implements Serializable
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String name;
    private String address;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

我认为您需要添加data:formData => data:JSON.stringify(formData)

检查这是否对您有帮助

干杯!

根据您的标签,我认为您正在使用Spring MVC。 只需为spring Web软件包添加一个新的loggger。 org.springframework.web包的日志级别提高到DEBUG将为您提供415错误的根本原因。

这是使用logback的示例:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="org.springframework.web" level="DEBUG" />

    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

您还将跟踪HTTP请求解析的所有请求映射。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM