Java 如何在Spark框架中使用OPTIONS HTTP方法?
我很难理解如何使用Spark framework返回HTML页面或嵌入式jetty-9.4.4.v20170414服务器上允许的所有方法 Java Spark代码: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(){
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方法的列表。谢谢你的回答,我试试看^_^