响应标头未显示在Google Chrome中呈现的swagger UI中

时间:2015-12-18 09:00:08

标签: java jersey swagger swagger-ui

我正在填充并以下列方式将javax.ws.rs.core.Response返回给Swagger UI -

 return Response.status(503)
 .entity(new SomeErrorEntity())
 .header("SOME_HEADER","SOME_HEADER").build();

这里SomeErrorEntity对象的json正确地显示在Response body中,但是标题“SOME_HEADER”没有显示在Google Chrome中呈现的swagger UI中的Response头下。只有“content-type”:“application / json”显示在标题下。但有趣的是,“SOME_HEADER”标题显示在IE 11中,但在其他浏览器中不显示(最新的Chrome,Mozilla)。 在这里,我使用swagger-jaxrs_2.10版本1.3.13,swagger-core_2.10版本1.3.13,swagger-annotations版本1.5.3-M1和swagger-jersey2-jaxrs_2.10版本1.3.13。我也在web.xml中使用以下CORS配置

<filter>
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

做了一些初步调查,发现在Swagger UI中渲染标题存在一些问题,并且修改建议不适用于我的情况,因为我没有明确使用任何swagger.js。所以,很少有人对如何找到这个问题的解决方案感到困惑。因此,任何解决此问题的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

由于CORS issuse

,您必须将此Access-Control-Expose-Headers:X-Total-Results发送给客户端