Cross-Origin Resource Sharing (CORS)
CORSは、クロスオリジン・リクエストを許可するどうかを安全に決定するためにブラウザとサーバーが対話する方法を定義します。 CORSは、同一オリジン・リクエストよりも柔軟性を提供しますが、すべてのクロスオリジン・リクエストを許可するよりも安全です。
Oracle Integrationは、「RESTアダプタ」トリガー(インバウンド)方向のCORSをサポートします。 CORSサポートは、アダプタ・エンドポイント構成ウィザードで構成します。 「RESTアダプタのトリガー・リソース構成ページ」と「RESTアダプタ・トリガーCORS構成ページ」を参照してください。
-
BlinkおよびChromiumをベースとするブラウザ(Chrome 28、Opera 15、Amazon Silk、Android 4.4+ WebView、およびQt WebEngine)。
-
Gecko 1.9.1 (Firefox 3.5、SeaMonkey 2.0、およびCamino 2.1)およびそれ以降。
-
MSHTML/Trident 6.0 (Internet Explorer 10)は、ネイティブ・サポートを提供します。 MSHTML/Trident 4.0および5.0 (Internet Explorer 8および9)は、XDomainRequestオブジェクトを介して部分的なサポートを提供します。
-
Prestoベースのブラウザ(Opera)は、Opera 12.00およびOpera Mobile 12(Opera Miniは除く)の時点でCORSを実装しています。
-
WebKit (Safari 4以降、Google Chrome 3以降、場合によってはそれより前)。
-
Caminoは2.0にCORSを実装していません。xリリース・シリーズはGecko 1.9.0に基づいているためです。
-
バージョン0.10.2の時点で、AroraはWebKitのCORS関連APIを公開しますが、クロス・オリジン・リクエストの試行は失敗します。[16]。
CORSが機能するには、OPTIONSリクエストを送信する必要があります。 Javascript for (Ajax呼び出し)のXMLHttpRequest
オブジェクトを使用すると、自動的にOPTIONSリクエストが送信されます。 XMLHttpRequest
が使用されない場合は、OPTIONSリクエストを明示的に送信する必要があります。
XMLHttpRequest
を使用してCORSベースのエンドポイントOracle Integrationを起動します。<html>
<script language="javascript">
var invocation = new XMLHttpRequest();
var url =
"<ics endpoint url>";
// Use postman to generate authCode. Sample is provided below
var authCode = 'Basic <base64encoded authorization string>';
function callOtherDomain(){ if(invocation) {
invocation.open('GET', url, true);
invocation.setRequestHeader('Accept', 'application/json');
invocation.setRequestHeader('X-Cache','aaa');
invocation.setRequestHeader('X-Forwarded-For','fwd1');
invocation.setRequestHeader('Authorization',authCode);
invocation.onreadystatechange = stateChangeEventHandler;
invocation.send();
}
}
function stateChangeEventHandler()
{
// check whether the data is loaded
if (invocation.readyState==4)
{ // check whether the status is ok
if (invocation.status==200) {
//alert(invocation.responseText)
document.getElementById("myTextarea").value = invocation.responseText
document.write("hello");
document.write(invocation.responseText);
}
else
{
alert ("Error Occurred")
}
}
}
</script>
<body onload="callOtherDomain()">
<br><br>
<textarea id="myTextarea" name="mytextarea1"></textarea><br><br>
</body>
</html>
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security