カスタムレストエンドポイントに「Access-Control-Allow-Origin」を設定していますが、このwebserviceをjavascriptから呼び出すと、次のエラーがMarkLogicカスタムレストエンドポイントセットアクセス制御 - 許可 - プリフライト要求の起点
XMLHttpRequest cannot load http://10.239.12.22:8042/LATEST/resources/repoUIFacet?rs:q=TNF. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://gprulcd707873.abbvienet.com:8000' is therefore not allowed access. The response had HTTP status code 401.
私はレスポンスヘッダIは、OPTIONS要求に対する応答ヘッダーを設定するにはどうすればよい
(: Function responding to GET method - must use local name 'get':)
declare function repoUIFacet:get($context as map:map, $params as map:map) as document-node()*
{
let $output-types := map:put($context,"output-types","application/json")
let $_ := xdmp:add-response-header("Access-Control-Allow-Origin", "*")
...
};
を設定するコードですか?
Iプリフライトエラーが発生しました... CORSリクエストです。 – Ravi
いいえ、プリフライトリクエストで認証失敗が発生したと思います。 MarkLogicへのリクエストはすべて、通常は認証される必要があるため、プリフライトリクエストも必要です。あなたの答えの中にプロキシや中間層を置くことは、そのような認証チェックをバイパスする良い解決策です。 – grtjn