2017-12-22 4 views
0

Ich bin neu zu ionischen und ich versuche, eine Proxy-Konfiguration für verschiedene Umgebungen einzurichten. Ich habe mehrere umgebungsspezifische Konfigurationsdateien an Ort und Stelle, die mit Webpack und einer Umgebungsvariablen geladen werden, die gesetzt wird, bevor Ionic geliefert wird (siehe: https://github.com/gshigeto/ionic-environment-variables).Ionic Proxy-Konfiguration für verschiedene Umgebungen

Alles funktioniert wie erwartet, aber ich weiß nicht, wie folgendes Problem zu lösen:

"proxies": [ 
    { 
     "path": "/api", 
     "proxyUrl": "https://dv.mydomain.com/api", 
     "rejectUnauthorized": false 
    } 
    ] 

und einer meiner http Anrufe wie folgt aussieht: Meine Proxy-Konfiguration (ionic.config.json) sieht wie folgt aus dies:

return this.http.get<User[]>(ENV.apiUrl + '/api/users') 

ich habe ENV.apiUrl zu entfernen, da sonst das Muster in der Proxy-Konfiguration angegeben ist nicht angepasst, aber wenn ich dies tue, kann ich nicht mehr zwischen verschiedenen Umgebungen unterscheiden. Ich habe versucht, die Domäne dem Pfad der Proxy-Konfiguration hinzuzufügen, die nicht funktionierte.

Gibt es eine Möglichkeit, dieses Problem zu lösen? Ich habe die gleiche Frage im ionischen Forum gestellt, aber noch niemand geantwortet.

+0

Können Sie weitere Informationen zu ENV.apiUrl hinzufügen? –

+0

Sicher Sache. Bitte klicken Sie auf den Link im ersten Absatz, die Readme-Datei erklärt, woher sie kommt, was sie tut und warum sie benötigt wird. Meine App kommuniziert mit drei Testumgebungen und einer produktiven Umgebung. – Daniel

Antwort

0

Die Art, wie ich es bisher "gelöst" habe, ist nicht mehr Ionic Proxies zu verwenden. Ich habe this plugin for chrome installiert, die den CORS-Schutz von Chrome grundsätzlich deaktiviert, indem Sie den Antwortheadern Access-Control-Allow-Origin: * hinzufügen.

0

Kann die API nicht einfach eine URL-Pfadkomponente sein? Ex:

// environment.pro.ts 
export const environment: any = { 
    apiUrl: '/pro' 
}; 

// environment.dev.ts 
export const environment: any = { 
    apiUrl: '/dev' 
}; 

Dann, so etwas wie:

// ionic.config.json 
"proxies": [ 
    { 
    "path": "/pro/api", 
    "proxyUrl": "https://example.com/api", 
    "rejectUnauthorized": false 
    }, 
    { 
    "path": "/dev/api", 
    "proxyUrl": "https://dev.example.com/api", 
    "rejectUnauthorized": false 
    } 
] 
+0

Nicht möglich für mich, das hätte natürlich funktioniert, war aber nicht die Frage. Bitte lesen Sie meine eigene Antwort unten. So kann es gelöst werden. – Daniel

0

CORS Problem nur auf die lokale Entwicklung spezifischer sein als Ionic Browser für lokale Entwicklung verwendet. Im Handy wird das ganze Javascript als Datei kopiert: // So wird der Ursprung nicht existieren.

So zu handhaben Sie die Erweiterung Chrom installieren https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

Dies sollte das Problem lösen.

+0

Ich habe die gleiche Antwort bereits vor zwei Wochen zur Verfügung gestellt (siehe unten) – Daniel

Verwandte Themen