当前位置: 首页 > 知识库问答 >
问题:

使用jersey解析飞行前请求后的请求时出现异常

洪开诚
2023-03-14

>

  • 我们创建了CORS筛选器,如下所示:

    @Provider
    public class CORSFilter implements ContainerResponseFilter {
    
        @Override
        public void filter(ContainerRequestContext request,
            ContainerResponseContext response) throws IOException {
    
            // TODO: Allow only from *our* Web front 
            response.getHeaders().add("Access-Control-Allow-Origin", "*");
            response.getHeaders().add("Access-Control-Allow-Headers",
                "origin, content-type, accept,x-request-id, x-api-key, x-api-secret, authorization");
            response.getHeaders().add("Access-Control-Allow-Credentials", "true");
            response.getHeaders().add("Access-Control-Allow-Methods",
                "GET, POST, PUT, DELETE, OPTIONS, HEAD");
        }
    }
    

    我们创建了一个REST资源

    @Path("MyResource")
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public String MyResource(TestInput input) {
        return input.getName();
    }
    
    public class TestInput {
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    

    如果cors报头存在,则通过返回来处理飞行前请求。

    请在这方面指导我。提前道谢。

  • 共有1个答案

    屈畅
    2023-03-14

    我认为您的ContainerresQuestFilter没有问题。您需要做的只是更新您的TestInput类并在其上添加以下注释。

    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)
    public class TestInput {
    
        @XmlElement
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
     类似资料:
    • 我使用AJAX请求通过POST将数据发送到另一个域。因为我的内容类型不是标准的(它是JSON格式),所以需要一个飞行前请求。(使用请求方法:选项) 如维基百科跨域XHR调用图表中所述 我想知道这是否很费时,因为浏览器将必须到达服务器两次或不?也许这取决于每个浏览器的行为? 通过使用内容类型“纯文本”来避免飞行前请求,我是否获得了一些时间?

    • 本文向大家介绍全面解析iOS中同步请求、异步请求、GET请求、POST请求,包括了全面解析iOS中同步请求、异步请求、GET请求、POST请求的使用技巧和注意事项,需要的朋友参考一下 先给大家分别介绍下iOS中同步请求、异步请求、GET请求、POST所代表的意思,然后在逐一通过实例给大家介绍。 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进

    • 我不清楚CORS头(Access-Control-Allow-Origin等)是否应该只出现在飞行前请求(OPTIONS方法)中,还是也出现在资源的头中(我试图使用XHR发布)

    • 从浏览器到我的自助主机OWIN WebAPI的所有预飞行请求都不会被中间件处理。如果我从邮递员提出选项请求,它们将被处理。为什么是这样的行为? 请求URL:http://localhost:9000/api/v1/conversations/create?connectionId=13509f44-eacb-4950-8cc8-71bd37098975 请求方法:选项 状态代码:401未经授权的远

    • 我正在我的本地主机上构建Web应用程序。 前端是Reactjs框架,运行在LocalHost:3000中

    • 我正在运行,刚刚检查了服务器日志,并出现了几个类似的错误。我不明白是什么导致了它,因为错误每天都在12/24小时后出现。