首页 文章

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

提问于
浏览
2

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

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

访问控制 - 暴露 - Headers

My question: 在启用CORS时,哪里可以告诉WSO2 API Manager传递pass或设置此头?我在api-manager.xml中尝试但是在重启后我没有看到预期的 Headers (在我的情况下是 Headers 'Location') .

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

1 回答

  • 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 .

相关问题