2017-03-08 120 views
2

我在WSO2 ESB 5.0.0上創建了一個具有任何端點的Rest API。WSO2 ESB - 配置CORS

我的端點調用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)內的移動應用程序,我收到了CORS錯誤:

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. 

我試圖做 庫下面的配置/ conf目錄/ tomcat的/炭/ WEB-INF ,我按照這個網址 WSO2 API Manager CORS

但沒有什麼變化。

我該如何解決這個問題?

問候,

亞歷山德羅

回答

3

對於預檢要求:

你必須創建一個過濾器(查詢的選項調用)這樣

<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"/>