【问题标题】:WSO2 EI giving preflight request CORS error while requesting from Angular clientWSO2 EI 在从 Angular 客户端请求时给出预检请求 CORS 错误
【发布时间】:2018-11-28 08:21:26
【问题描述】:

我正在使用 Angular 客户端在 wso2 中调用 rest api,该 API 从不直接构建为 api 的数据服务中暴露出来,并且还尝试了堆栈溢出和 wso2 文档中提供的许多解决方案,没有任何帮助。

【问题讨论】:

    标签: cors wso2 preflight wso2ei


    【解决方案1】:

    关于预检中的 OPTIONS 请求,WSO2 Enterprise Integrator (EI) 的行为如下所示,具体取决于 API 的实现。

    1. 如果我们已将 OPTIONS 定义为资源方法,则 EI 会将请求发送到后端服务以收集信息。
    2. 如果我们没有将 OPTIONS 定义为资源方法,那么 EI 只需使用允许的方法回复“Allow”标头,而无需进一步将请求发送到服务。

    为了使上述 API 能够满足跨域请求,请在 API 中包含以下资源。

    <resource methods="OPTIONS" uri-template="/*">
          <inSequence>
             <property name="Access-Control-Request-Headers" value="authorization,content-type" scope="transport"/>
             <property name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" scope="transport"/>
             <property name="Access-Control-Allow-Headers" value="*" scope="transport" type="STRING"/>
             <property name="Access-Control-Allow-Origin" value="*" scope="transport"/>
             <property name="RESPONSE" value="true" scope="default" type="STRING"/>
             <respond/>
          </inSequence>
    </resource>
    

    请注意,上面的示例设置了允许所有来源和所有标题的属性,您可以根据需要配置上述属性。除了上面的通配符(“*”)之外,还可以使用特定的值,包括以下被限制的原始值。

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 2020-10-26
      • 2019-04-11
      • 1970-01-01
      • 2020-12-18
      • 2019-06-25
      • 2019-01-24
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多