使用AngularJS的子域的路由

时间:2013-05-20 22:47:03

标签: javascript angularjs

仅使用AngularJS可以检测子域并相应地路由吗?

假设子域名 spicy.example.com 指向与 example.com

相同的docRoot

example.com 有一个index.html,其中有<div ng-view></div>

在我的配置中,我定义了部分路线:
$routeProvider.when('/food', {templateUrl: 'views/example.com/regular.html'});

但是如果 spicey.example.com 希望用它自己覆盖regular.html部分呢? $routeProvider.when('/food', {templateUrl: 'views/spicy.example.com/hot.html'});

如果不在像Apache / Nginx这样的服务器上使用重写规则,这是否可行?

注意:
这是一个单页应用程序
$locationProvider.html5Mode(true);

我正在使用CORS:
$http.defaults.useXDomain = true;

2 个答案:

答案 0 :(得分:0)

不,由于Same origin policy,这是不可能的。

  

请记住,同源政策适用于所包含的资源   (例如,ngInclude不适用于所有浏览器的跨域请求   对于某些浏览器上的file://访问权限。

http://docs.angularjs.org/api/ng.directive:ngInclude

答案 1 :(得分:0)

CORS似乎是要走的路。

您可以通过NGINX / Node.js代理将请求传递给文件并使用CORS,也可以使用CDN为启用CORS的资产提供服务,如Amazon Cloud S3。

如果sumdoamins指向同一个doc root,请访问:

example.com/views/home.html

与访问:

无异
test.example.com/views/home.html