Ich stelle in meinem benutzerdefinierten Rest Endpunkt die "Access-Control-Allow-Origin", aber wenn ich diesen Webservice von Javascript aufrufen, bekomme ich FolgendesMarkLogic Custom Rest Endpunkt gesetzt Access-Control-Allow-Origin für Preflight-Anfrage
FehlerXMLHttpRequest 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.
es folgt der Code, wo ich die Antwort-Header gesetzt
(: 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", "*")
...
};
Wie kann ich die Antwort-Header für eine OPTIONS-Anforderung eingestellt?
I Ich bekomme einen Preflight-Fehler ... Es ist CORS-Anfrage, Problem .. – Ravi
Nein, ich glaube, Sie hatten einen Auth-Fehler auf der Preflight-Anfrage. Sinnvollerweise müssen alle Anfragen an MarkLogic normal authentifiziert werden, also auch Preflight-Anfragen. Ein Proxy oder eine Zwischenschicht dazwischen wie in Ihrer Antwort ist eine gute Lösung, um solche Auth-Checks zu umgehen. – grtjn