Java 如何在Spark框架中使用OPTIONS HTTP方法?

Java 如何在Spark框架中使用OPTIONS HTTP方法?,java,angularjs,restful-architecture,spark-java,http-1.1,Java,Angularjs,Restful Architecture,Spark Java,Http 1.1,我很难理解如何使用Spark framework返回HTML页面或嵌入式jetty-9.4.4.v20170414服务器上允许的所有方法 Java Spark代码: options("/panel/data/options", (request, response) -> request .headers("Access-Control-Request-Method")); AngularJS代码: $scope.options = function(){

我很难理解如何使用Spark framework返回HTML页面或嵌入式jetty-9.4.4.v20170414服务器上允许的所有方法

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)
        });
    };

这就是我到目前为止所做的。

首先,您的Spark java方法正在修改请求头,它应该只修改响应头,因为您的客户机不会返回修改后的请求

options("/panel/data/options", (request, response) -> response
            .headers("Access-Control-Request-Method"));
然后在angular方法中,当后端更改响应的标题时,您应该读取这些标题,而不是数据:

$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)
    });
};

您好,谢谢您的回答,但遗憾的是,由于response.headers()方法需要两个参数,并且它的返回类型为void,因此我无法仅返回响应。例如,headers(“访问控制请求方法”,“*”),我尝试在响应中设置头返回“OK”,但这似乎也不起作用/如果您试图启用CORS,可以遵循以下代码:我只是试图在一个警报框中显示所有允许的HTTP方法的列表。谢谢你的回答,我试试看^_^