在WSO2 API Manager中放置/配置CORS标头Access-Control-Expose-Headers的位置

时间:2016-11-10 10:05:40

标签: angular wso2 wso2-am wso2carbon angular2-services

我在CORS场景下访问我的响应标头时遇到问题。 我正在做一个CORS电话。因此,我在API Manager中配置了我的API配置以接受CORS请求(即,为我的REST端点启用了CORS)。

但是当我的应用程序(Angular2应用程序)执行发布请求时(http.post)没有看到响应头。我在Chrome Devtools中检查了远程服务器接收的浏览器的内容,结果发现在浏览器中收到了所有预期的响应标头。显然,Angular没有将它传递给我的代码,我无法访问标题。 Gunter,建议我检查一下CORS标题

  

访问控制 - 暴露 - 接头

我的问题: 在启用CORS时,我在哪里可以告诉WSO2 API Manager传递pass或设置此头?我在api-manager.xml中尝试了但是在重启后我没有看到预期的标题(在我的例子中是标题'Location')。

Angular2 's Http.post is not returning headers in the response of a POST method invocation

1 个答案:

答案 0 :(得分:2)

APIM即开即用支持Access-Control-Allow-Headers,但不支持Access-Control-Expose-Headers

但您也可以将APIM配置为发送该标头。为此,您可以创建如下所示的序列并将其附加到API。

<sequence xmlns="http://ws.apache.org/ns/synapse" name="_cors_request_handler_">
     <property name="Access-Control-Expose-Headers" value="Location"  scope="transport" type="STRING"/>
</sequence>

This doc解释了如何将此类序列文件引用到特定API或全局API中。