我已经使用托管在一个域上的 spring mvc 编写了 REST API,前端是使用托管在另一个域上的 HTML 和 Angular JS 编写的。现在我想从放置 Frond UI 的另一个域调用 REST API那么如何使用相对 URI 而不是绝对 URI 来调用 REST API?
例如 Instaed
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'
}
});
} ]);
我不想提及 IP 地址和端口。
最佳答案
您需要创建硬编码资源的工厂或服务。
例如:
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;
}
使用示例:
$http.get(storage.serverAdress + '/relative/path').then(function(res)...
通过这种方式,您可以封装所有硬编码数据,并根据您的环境变量更轻松地更改它们(例如,如果您想要测试服务器或其他东西的不同服务器地址)。
如果有一天您想更改您的域名,这也非常简单。这种做法称为薄层。
关于java - 从不同的域调用 REST API,例如具有相对 URL 的 Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45506922/