WSO2 EI从Angular客户端请求时发出预检请求CORS错误

时间:2018-06-19 11:23:48

标签: cors wso2 preflight wso2ei

我正在使用Angle Client调用wso2中的rest api,该api是从不是直接构建为api的数据服务中公开的,并且还尝试了堆栈溢出中提供的许多解决方案以及wso2文档,无济于事。

1 个答案:

答案 0 :(得分:0)

对于预检中的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>

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

相关问题