【问题标题】:angularjs, java, 404, sparkangularjs,java,404,火花
【发布时间】:2017-11-05 15:06:09
【问题描述】:

我正在尝试了解有关使用 AngularJS 和 Java 创建 SPA 的更多信息。我按照教程here 进行操作,除了一个错误外,我设法让它工作。当我创建一个新的待办事项然后返回到待办事项列表时,我收到以下错误。

angular.js:8109 POST http://localhost:8080/api/v1/todos 404(未找到)

控制台输出如下

HEJ ERROR
app.js:51 Error createTodo <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 404 </title>
</head>
<body>
<h2>HTTP ERROR: 404</h2>
<p>Problem accessing /api/v1/todos. Reason:
<pre>    Not Found</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>

为什么我添加了另一个待办事项后它不起作用?

角度代码

var app = angular.module('todoapp', [
    'ngCookies',
    'ngResource',
    'ngSanitize',
    'ngRoute'
]);

app.config(function ($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: 'views/list.html',
        controller: 'ListCtrl'
    }).when('/create', {
        templateUrl: 'views/create.html',
        controller: 'CreateCtrl'
    }).otherwise({
        redirectTo: '/'
    })
});

app.controller('ListCtrl', function ($scope, $http) {
    $http.get('/api/v1/todos').success(function (data) {
        $scope.todos = data;
    }).error(function (data, status) {
        console.log('Error listctrl ' + data)
    })

    $scope.todoStatusChanged = function (todo) {
        console.log(todo);
        $http.put('/api/v1/todos/' + todo.id, todo).success(function (data) {
            console.log('status changed');
        }).error(function (data, status) {
            console.log('Error todostatuschanged' + data)
        })
    }
});

app.controller('CreateCtrl', function ($scope, $http, $location) {
    $scope.todo = {
        done: false
    };

    $scope.createTodo = function () {
        console.log($scope.todo);
        $http.post('/api/v1/todos', $scope.todo, $location).success(function (data) {
            console.log("HEJ")
            $location.path('/');
        }).error(function (data, status) {
            console.log("HEJ ERROR")
            console.log('Error createTodo ' + data)
        })
    }
});

Java 代码:

import static spark.Spark.get;
import static spark.Spark.post;
import static spark.Spark.put;

public class TodoResource {

    private static final String API_CONTEXT = "/api/v1";

    private final TodoService todoService;

    public TodoResource(TodoService todoService) {
        this.todoService = todoService;
        setupEndpoints();
    }

    private void setupEndpoints() {
        post(API_CONTEXT + "/todos", "application/json", (request, response) -> {
            todoService.createNewTodo(request.body());
            response.status(201);
            return response;
        }, new JsonTransformer());

        get(API_CONTEXT + "/todos/:id", "application/json", (request, response)

                -> todoService.find(request.params(":id")), new JsonTransformer());

        get(API_CONTEXT + "/todos", "application/json", (request, response)

                -> todoService.findALL(), new JsonTransformer());

        put(API_CONTEXT + "/todos/:id", "application/json", (request, response)

                -> todoService.update(request.params(":id"), request.body()), new JsonTransformer());
    }


}

【问题讨论】:

    标签: java angularjs mongodb


    【解决方案1】:

    我解决了!

    我从第一个端点删除了“new JsonTransformer()”。

    我不知道为什么它起作用了,但它确实起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      相关资源
      最近更新 更多