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

标签 angular wso2-api-manager wso2 angular2-services

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

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

Access-Control-Expose-Headers

我的问题: 当启用 CORS 时,我可以在哪里告诉 WSO2 API Manager 传递 pass 或设置此 header ?我在 api-manager.xml 中尝试过,但重新启动后没有看到预期的 header (在我的例子中为 header “位置”)。

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

最佳答案

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

但是您也可以配置 APIM 来发送该 header 。为此,您创建一个如下所示的序列并将其附加到您的 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 结合使用。

[更新 - 2019]

现在APIM默认在序列目录中有一个CORS序列。您可以相应地更新它。

APIM 3.0 开箱即用地支持 Access-Control-Expose-Headers

关于angular - 在 WSO2 API Manager 中放置/配置 CORS header Access-Control-Expose-Headers 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40524784/

相关文章:

multipartform-data - wso2 am 网关转发 multipart/form-data post 请求

javascript - Caramel 如何注册 Handlebars 助手?

wso2 - 如何转换(JSON 到 XML)请求和响应(XML 到 JSON)以调用外部 Soap 服务

javascript - 对于 Angular 中的 FormControls 来说,.setErrors 不是一个函数

Angular:数据仅在订阅方法中可用,但在外部不可用

java - 无法使用 "bin/ballerina run service services.bsz"从 wso2apim-gateway-3.0.0 根目录启动网关

wso2 - 在 WSO2 API 网关中验证 JWT token

rest - WSO2 API 管理器将 SOAP 转换为 REST

Angular 2 ngOnInit 被错误调用两次

javascript - 当 *ngFor 在 Angular 2 中完成时执行一个函数