Как использовать HTTP-метод OPTIONS в платформе Spark?

У меня возникают трудности с пониманием того, как я могу вернуть все методы, которые разрешены на моей странице HTML или на моем встроенном сервере jetty-9.4.4.v20170414, используя платформу Spark?

Java Spark код:

options("/panel/data/options", (request, response) -> request
                .headers("Access-Control-Request-Method"));

Код AngularJS:

$scope.options = function(){
        $http({
            method: 'OPTIONS',
            url: 'http://localhost:4567/panel/data/options',
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).then(function succesCallback(response){
            alert(response.data)
        });
    };

Это то, что я до сих пор.

1 ответ

Во-первых, ваш Java-метод Spark изменяет заголовки запроса, он должен изменять только заголовки ответа, так как ваши клиенты не собираются возвращать измененный запрос.

options("/panel/data/options", (request, response) -> response
            .headers("Access-Control-Request-Method"));

Затем в вашем угловом методе, поскольку серверная часть меняет заголовки вашего ответа, вы должны читать эти заголовки, а не данные:

$scope.options = function(){
    $http({
        method: 'OPTIONS',
        url: 'http://localhost:4567/panel/data/options',
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).then(function succesCallback(response){
        alert(response.headers)
    });
};
Другие вопросы по тегам