我在WSO2 ESB 5.0.0上创建了一个包含任何端点的Rest API。
我的端点调用在java上运行的api(在Tomcat 8上运行),如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="RecuperarArmadilhaPorId">
<http statistics="enable"
method="GET"
uri-template="http://localhost:8080/impactorcamentosgpmpu/ns/rest/pga/armadilhas/detalhePorId/{uri.var.id}"/>
</endpoint>
我没有使用Identity Server,我不想在此刻使用。
当我拨打我的网址wso2(http://192.168.10.178:8280/mapaHomologacao/ns/rest/pga/localidadesPorRota/101)内部移动应用时,我收到了错误:
XMLHttpRequest cannot load
http://192.168.10.178:8280/mapaHomologacaorotas/completa/1/101. No 'Access-
Control-Allow-Origin' header is present on the requested resource. Origin
'http://localhost:8100' is therefore not allowed access.
我尝试进行以下配置 repository / conf / tomcat / carbon / WEB-INF,我按照这个url WSO2 API Manager CORS
但没有任何改变。
如何解决此问题?
此致
的Alessandro
答案 0 :(得分:5)
对于飞行前请求:
您必须创建一个过滤器(以检查OPTIONS调用),如此
<filter source="get-property('axis2', 'HTTP_METHOD')" regex="OPTIONS">
<then>
...
</then>
</filter>
或为OPTIONS /*
创建单独的资源并将此内容放入其中。
<property name="Access-Control-Allow-Origin" value="*" scope="transport" type="STRING"/>
<property name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,PATCH,OPTIONS" scope="transport" type="STRING"/>
<property name="Access-Control-Allow-Headers" value="Authorization,Access-Control-Allow-Origin,Content-Type" scope="transport" type="STRING"/>
<respond/>
请注意,上述属性中的值应根据您的要求进行更改。
对于简单的请求:
你还必须把它放在你的外出序列中。
<property name="Access-Control-Allow-Origin" value="*" scope="transport" type="STRING"/>