Cross-Origin Resource Sharing (CORS)のサポート

Deeplからの自動翻訳

HTTP データリクエストを作成したら、「HTMLリクエストへのアクセスはcorsポリシーによってブロック されています」という赤いエラーに見舞われたことはないだろうか?

あなたのサイトがWebサービスサーバーと同じドメインにある場合は問題ありません。しかし、クロスオリジンリクエストを実行するとそうはいきません。ブラウザのセキュリティにより、別のドメインへのHTTPリクエストが阻止されるため、アクセスが拒否されます。その結果は?CORSポリシーエラーです。

サーバー上で特定のクロスオリジンリクエストを明示的に許可するために、4Dは現在、CORSプロトコルをサポートしています。クロスオリジンリクエストでデータにアクセスすることが簡単になりました。

CORSプロトコルは、Webページが自分自身のドメイン以外のドメインにリクエストを行うことができるようにするものです。しかし、時には、他のサイトがあなたのサーバーにHTTPデータリクエストを行うことを許可する必要があるかもしれません。幸い、4Dは CORSルールを定義し、特定のクロスオリジンリクエストを明示的に許可する方法を2つ提供しています。

  • プログラミングによる方法、または
  • データベース設定による方法です。

プログラミングによるCORSの管理

2つのコマンドでCORSを有効にすることができます。

//CORS Domains Settings
$settings
:=New collection
$settings .push(New object("host"; "127.0.0.1:8888"; "methods"; "get;put;post")
$settings .push(New object("host"; "https://blog.4d.com/"; "methods"; "get;post")

//enable CORS
WEB SET OPTION (Web CORS enabled;1)

//CORS Domains Settings
WEB SET OPTION (Web CORS settings;$settings)

//start web server to apply CORS settings
WEB START SERVER

$hostWS
//CORS Domains Settings
$setting:=WEB Server(Web host database server)
$setting :=New object

//Enable CORS $setting .CORSEnabled:=True

$setting CORSSettings :New collection$setting CORSSettings push (New object("host"; "127.0.0.1:8888"; "methods"; "get;put;post"))
$setting .CORSSettings.push(New object("host"; "https://blog.4d.com/"; "methods"; "get;post") )

//start web server and apply CORS settings
$hostWS.start( xml-ph-0)

データベース設定によるCORSの管理

設定>Webオプション(II)タブで新しい設定が可能です。

許可されたドメイン名と利用可能なメソッドを追加するだけです。サーバーが次に起動したとき、それらは自動的に使用されます。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。