it-swarm.com.de

CORS + Cordova: Probleme mit: Access-Control-Allow-Origin

Ich habe stundenlang nach diesem Problem gesucht, aber ich kann immer noch keine Lösung dafür finden.

Ich entwickle gerade eine App Cordova (hauptsächlich HTML/JS) .__: Also: Die App läuft vom Navigator aus auf dem Handy, und ich habe Schwierigkeiten, eine Ajax-Anforderung an eine API zu richten: https://developer.riotgames.com/ Aber sagen wir mal, ich möchte nur die Google-Seite bekommen.

Wie um alles in der Welt mache ich das, ist das überhaupt möglich? Hier ein einfaches Beispiel:

$.ajax({
    type: "GET",
    url: "https://google.com",
    dataType: "text",
    success: function(response){
        alert("!!!");
    },
    error: function(error){
        alert("...");
    }
});

Ich bekomme immer wieder den gleichen Fehler: 

XMLHttpRequest kann https://google.com/ nicht laden. Nein Der Header 'Access-Control-Allow-Origin' ist in der angeforderten .__ vorhanden. Ressource. Origin 'null' hat daher keinen Zugriff

Der Ursprung 'null' ist, weil ich den Code von: file:///D:/Projets/LoL/www/index.html aus laufe und lese, dass der Navigator blockiert, aber er funktioniert nicht so gut, wenn ich die Sicherheit mit --disable-web-security.__ deaktiviere. Natürlich habe ich das nicht Zugriff auf den Server, an dem ich teilnehmen möchte.

Vielen dank für Deine Hilfe !

13
Navet

Sie benötigen das Cordova Whitelist Plugin: https://cordova.Apache.org/docs/de/latest/reference/cordova-plugin-whitelist/ .

Habe das in config.xml:

<access Origin="*" />
<allow-navigation href="*"/>

Und haben die Meta Content-Security-Policy in index.html. So etwas wie:

<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data:">
16
Niels Steenbeek

Wenn das Problem erst ab dem 1. August 2019 aufgetreten ist. Dies Fehler bei der Zugriffssteuerung und beim Zulassen des Ursprungs .. (mit Cordova) könnte mit dem Problem zusammenhängen.

0
Rafael M.

Ich habe folgendes in Knoten js Server hinzugefügt, das mein Problem löst;

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

Dies kann hilfreich sein, wenn Sie nodejs verwenden.

Vielen Dank

0
Deepak Bhatta