記事
· 2021年9月9日 2m read

RESTでクロスドメイン制約を回避する方法

これは InterSystems FAQ サイトの記事です。
 

%CSP.REST クラスを継承する REST 用ディスパッチクラスで REST を実装している場合は、クロスドメイン制約回避用に用意されたパラメータ HandleCorsRequest を利用します。

設定方法は以下の通りです。

REST 用ディスパッチクラスをスタジオで修正する場合は、
[クラス] > [リファクタ] > [オーバーライド] を開き、[パラメータ]タブを選択 > [HandleCorsRequest] を選択後OKボタンを押下します。

 

以下の定義が追加されるので、1を設定します。

 

Parameter HandleCorsRequest=1;

REST ディスパッチクラスを Atelier で修正する場合は、オーバーライドメニューの用意がないため、パラメータの定義を追加するか、%CSP.REST クラスを開き、HandleCorsRequest の定義をコピーし修正します。

パラメータ:HandleCorsRequest 他に、REST 用ディスパッチクラスに用意する URL マップ(URL に対応するメソッドのマップ定義)の Route 要素毎に Cors 属性を true に設定する方法でも回避できます。
メモ:Cors 属性はデフォルトでは false が設定されています。

XData UrlMap
{
<Routes>
<Route Url="/persons/:keyword" Method="GET" Call="REST.Person:getperson" Cors="true" />
<Route Url="/persons2/" Method="POST" Call="REST.Person:getperson2"/>
Routes>
}

設定詳細については以下ドキュメントをご参照ください。


CORS使用のためのRESTサービスの構成について【IRIS】

CORS使用のためのRESTサービスの構成について

 

コードサンプルについては、関連トピックをご参照ください。

JQueryでデータをJSON形式で取得する方法

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください