gpt4 book ai didi

java - 在飞行前响应中,Access-Control-Allow-Methods 始终不允许方法删除

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:10 25 4
gpt4 key购买 nike

我使用 jersey 作为我的 restful api 实现。在前端,我使用 angularjs $http 服务来发出 http 请求。当我请求删除方法时,我总是遇到以下错误。

"Method DELETE is not allowed by Access-Control-Allow-Methods in preflight response."  

我读了一些文章,他们说我需要在“Access-Control-Allow-Methods”上允许删除。我已经如下设置响应过滤器,但它仍然有这样的问题。我还应该做什么?

@Provider
public class CORSResponseFilter implements ContainerResponseFilter {

@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
MultivaluedMap<String, Object> headers = responseContext.getHeaders();

headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Methods", "*");
}
}

下面是我发出请求的 Angular 代码:

$http({
method: 'DELETE',
url: remoteUrl,
headers : {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
'ACCESS_TOKEN' : $cookieStore.get("access_token")
},
data : $httpParamSerializer({
'id':id
})
}).success(function(data,status,headers,config) {
$scope.refreshDepartments();
console.log(data);
alert("success");
}).error(function(data,status,headers,config){
console.log(data);
alert("error");
});

最佳答案

经过一些测试,我找到了解决方案。我将 allow 方法放在 header 上,如下所示,然后它就可以工作了。我不知道为什么“*”不起作用。

headers.add("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE");

关于java - 在飞行前响应中,Access-Control-Allow-Methods 始终不允许方法删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36374247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com