Ich versuche eine eckige App für den Zugriff auf Daten aus der MarkLogic-Datenbank zu erstellen. Ich verwende die MarkLogic Rest-API, um auf die Daten zuzugreifen. Wenn ich versuche, die App auszuführen, erhalte ich den folgenden Fehler.'Access-Control-Allow-Origin'-Fehler, selbst nachdem ich zwei Ansätze verfolgt habe
XMLHttpRequest nicht http://192.168.192.75:9550/v1/keyvalue?element=fieldId&value=1005&format=json laden. Auf der angeforderten -Ressource ist kein Header 'Access-Control-Allow-Origin' vorhanden. Herkunft 'http://localhost:8080' ist daher nicht erlaubt Zugriff.
Ich habe viele Antworten zu diesem Thema auf Stackoverflow gelesen, konnte aber nichts arbeiten. Hier ist, was ich bis jetzt versucht habe.
1) Setting the response header using xdmp in qconsole
xdmp:add-response-header("Access-Control-Allow-Origin", "*");
xdmp:add-response-header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
xdmp:add-response-header("Access-Control-Allow-Headers", "x-requested-with, X-Auth-Token, Content-Type");
2) Tried to add headers by using REST [Extention][1]. Here is the example.sjs file which I wrote.
a) function get(context, params) {
var results = [];
context.outputTypes = [];
for (var pname in params) {
if (params.hasOwnProperty(pname)) {
results.push({name: pname, value: params[pname]});
context.outputTypes.push('application/json');
}
}
context.outputStatus = [201, 'Created My New Resource'];
context.outputHeaders =
{'Access-Control-Allow-Origin' : '*', 'Access-Control-Allow-Methods' : 'GET, OPTIONS, DELETE', 'Access-Control-Allow-Headers' : 'x-requested-with, X-Auth-Token, Content-Type'};
return xdmp.arrayValues(results);
};
exports.GET = get;
b) curl --anyauth --user admin:admin -X PUT -i -H "Content-type: application/vnd.marklogic-javascript" --data-binary @./example.sjs http://192.168.192.75:9550/LATEST/config/resources/example
Es scheint nicht zu funktionieren, egal wie. Kann mir bitte jemand sagen, ob ich etwas falsch mache? oder Wenn es andere Möglichkeiten gibt, wie das funktioniert? Vielen Dank im Voraus.
@Tang danke für Ihre Antwort. Ich habe mir einen zweistufigen Ansatz angesehen. d. h. schräg mit Marklogic unter Verwendung der Rest-API. Ich habe jetzt einen alternativen Weg gefunden, dies zu erreichen. Ich werde es jetzt posten. – DMA