2017-09-15 2 views
0

Ich mache eine Java-API-REST und eine Front-End-Anwendung mit reinem JS (ja, kein Framework), wenn ich von derselben Domäne zugreifen, funktioniert meine Anwendung perfekt, aber wenn ich den Zugriff durch eine andere Domain versuche, kann ich das nicht.Ich kann nicht auf meine API der anderen Domäne zugreifen

Meine Filter in Java-Anwendung sind wie folgt:

after((req, resp) -> { 
     resp.header("Access-Control-Allow-Headers", "Access-Control-Allow-Origin, Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); 
     resp.header("Access-Control-Allow-Methods", "GET,PUT,DELETE,POST,OPTIONS"); 
     resp.header("Content-Encondig", "gzip"); 
     resp.header("Access-Control-Allow-Origin", "*"); 
     resp.type("application/json"); 
    }); 

Und meine JS Anfrage ist wie folgt:

static get(startDate,endDate){ 
    return fetch(`http://localhost:4567/api/schedule/${startDate}/${endDate}`,{ 
     mode : "cors", 
    }) 
    .then(result => result.json()) 
    .catch(error => erroe) 
} 

Wichtig:, wenn ich von einer anderen Domäne zugreifen, sondern direkt auf Browser , Bekomme ich die JSON perfekt Backend:java Spark frameWork

+1

Welche Fehler bekommen Sie wo? Was passiert am Spark-Ende? Protokollieren Sie die Anfragen? Welche kommen rein? Sieh dir [fragen] an. Dies könnte auch als Vorfilter sinnvoller sein. – pvg

+0

Sie könnten auch einfach implementieren, was sie in ihrem eigenen Tutorial tun. https://sparkututorials.github.io/2016/05/01/cors.html (obwohl der Vorher-Filter genauso gut funktioniert) – pvg

Antwort

0

Ich löste mein Problem, in meiner Anwendung JS rief ich die Anfrage für http://localhost:4567/api, dann, wenn ich auf die Anwendung von anderen Domain zugreifen, die Anwendung die Anforderung für sich selbst aufrufen, so die Lösung wurde Localhost von Anwendung IP-Adresse ändern.

Verwandte Themen