Как использовать HTTP-метод OPTIONS в среде Spark? - PullRequest
0 голосов
/ 30 апреля 2018

Мне трудно понять, как вернуть все методы, которые разрешены на моей 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 Ответ

0 голосов
/ 08 мая 2018

Во-первых, ваш 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)
    });
};
...