Как использовать 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)
});
};