2017-08-04 1 views
0

Ich habe geschrieben REST-API mit Feder mvc, die auf einer Domäne gehostet wird und Front-End mit HTML und eckigen JS geschrieben wird, die in einer anderen Domäne gehostet wird.Jetzt möchte ich Rufen Sie die REST-API aus einer anderen Domäne auf, in der die Frond-Benutzeroberfläche platziert ist. Wie kann ich also die REST-API mithilfe der relativen URI anstelle der absoluten URI aufrufen?Aufruf der REST-API aus einer anderen Domäne wie angular JS mit relativer URL

Für e.g.Instaed von

webbrokerModule.factory('CustomerContact', [ '$resource', function($resource) { 
    return $resource('http://localhost:24000/webbroker/customercontact/:brokerid', { 
     brokerid : '@brokerid' 
    }, { 
     get : { 
      method : 'GET' 
     } 
    }); 
} ]); 

I want to call it as 
webbrokerModule.factory('CustomerContact', [ '$resource', function($resource) { 
    return $resource('/webbroker/customercontact/:brokerid', { 
     brokerid : '@brokerid' 
    }, { 
     get : { 
      method : 'GET' 
     } 
    }); 
} ]); 

Ich will nicht IP-Adresse und Port erwähnen.

+0

Überprüfen Sie, ob https://stackoverflow.com/questions/18984518/angularjs-globally-modify-the-url-of-every-request-in-http – BotanMan

Antwort

1

Sie müssen eine Factory oder einen Service für hardcodierte Ressourcen erstellen.

Zum Beispiel:

angular 
.module('app') 
.factory('storage', storageFactory); 

function storageFactory() { 

var r = 
{ 
    serverAdress : 'https://server.address.fr', 
    //serverAdress : 'https://another.server.adress.fr', 
    //serverAdress : 'http://localhost:3000', 
}; 

return r; 

} 

Anwendungsbeispiel:

$http.get(storage.serverAdress + '/relative/path').then(function(res)... 

diese Weise können Sie alle Ihre fest codierten Daten einkapseln und sie leichter auf Ihre Umgebungsvariablen (zum Beispiel je ändern, wenn Sie wollen eine andere Serveradresse für den Testserver oder etwas anderes).

Es ist auch sehr einfach, wenn Sie eines Tages Ihre Domänen ändern möchten. Diese Art von Übung wird als dünne Schicht bezeichnet. Gibt es etwas wie bootstraping Anwendung

+0

beantworten, die mir erlauben, Um relative URL zu verwenden. Jetzt habe ich 3 verschiedene environmemt, so muss ich 3 verschiedene Datei nach Ihrer Logik haben – jinal

+0

Nein, überhaupt nicht, ändern Sie einfach die serverAddress in der js-Datei zur Laufzeit, wenn Sie in einer anderen Umgebung sind – Alburkerk

+0

Just Überprüfen Sie, wie tu process_env-Variablen verwenden und diese var anstelle von hardcoding verwenden serverAdress ist die Datei. Auf diese Weise verweist die serverAddress in der Datei immer auf eine Linux-Umgebungsvariable. Dein Job, es in Deinem Skript zu deklarieren, wenn Du in der Umgebung startest, aber das ist ziemlich einfach :) – Alburkerk

Verwandte Themen