错误415.使用Spring服务REST - AngularJs

时间:2016-04-22 18:13:15

标签: javascript java angularjs json spring

我的服务有问题。我发送了一个请愿$ http.get从angular到我的Spring控制器,但是我有下一个错误:服务器拒绝了这个请求,因为被请求方的格式不受所请求方法所请求资源的支持。

控制器:

@Controller
public class PersonController {

    @Autowired
    private PersonService personService;


    @RequestMapping(value = "/person", consumes = {"application/json;charset=UTF-8"}, produces={"application/json;charset=UTF-8"},  method = RequestMethod.GET)
    public @ResponseBody List<Person> listPersons_() {
        return this.personService.listPersons();
    }
...

Angular Service:

    function get($scope, $http) {
        $http.get('person').
            success(function(data) {
                $scope.greeting = data;
            });
    }
...

截图:  Console

标题  Headers

3 个答案:

答案 0 :(得分:1)

在HTTP错误方面,默认情况下,Spring MVC不是很冗长。您可以做的是将包org.springframework.web的日志级别提高到DEBUG,以便更好地解释415错误。

祝你好运!

丹尼尔

答案 1 :(得分:1)

我认为你不需要那些produces/consumes标题。我开发了一个非常类似的应用程序,它使AngularJS服务与你的相同,但在Spring结束时相对非常简单:

// List All Employees
@RequestMapping(value = "/employee/all", method = RequestMethod.GET)
public AllEmployeesResponse listAllEmployees() {

    return empService.listAll();
}

我所拥有的只是一个包含AllEmployeesResponse个对象列表的Employee对象。

json照顾好自己。如果不属于您,请检查您的Serializable课程中是否已实施@Entity

此外,我的@RestController代替普通@Controller

答案 2 :(得分:0)

嗯...删除atributes(消耗并生成)后,我会收到错误406,我觉得我需要添加Jackson-databin库。它起作用了。

<强>控制器:

@Controller
public class PersonController {

    @Autowired
    private PersonService personService;


    @RequestMapping(value = "/person", method = RequestMethod.GET)
    public @ResponseBody List<Person> listPersons_() {
        return this.personService.listPersons();
    }
...

<强>相关性:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.3.0</version>
</dependency>

非常感谢。