我正在使用Angular 1.3.2创建一个非常简单的RESTful网站。可以在这里看到:
如果你带着领先的" www"去同一个网站。它会工作,因为.htaccess文件通过执行以下操作重写没有www的URL:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
如果有人试图与&#34; www&#34;进行深层链接,则会出现问题。在前面,一个la http://www.artlyticalmedia.com/portfolio(sans&#34; www&#34;工作正常,试一试)。如果您查看所选的Web检查器,您会看到每个ng-include
模板都会引发跨域错误。如果有帮助,这是我的app.js文件,其中包含所有路由:
angular
.module('comartlyticalmediawwwApp', [
'ngAnimate',
'ngAria',
'ngCookies',
'ngMessages',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'ui.bootstrap',
'ng.deviceDetector'
])
.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeCtrl',
navbarVal: 'home',
title: 'Home'
})
.when('/portfolio', {
templateUrl: 'views/portfolio.html',
controller: 'PortfolioCtrl',
navbarVal: 'portfolio',
title: 'Portfolio'
})
.when('/contact', {
templateUrl: 'views/contact.html',
controller: 'ContactCtrl',
navbarVal: 'contact',
title: 'Contact'
})
.otherwise({
redirectTo: '/',
controller: 'HomeCtrl',
navbarVal: 'home',
title: 'Home'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
}).run(['navbarValChanger', function (navbarValChanger) {
navbarValChanger();
}]);
我该如何解决这个问题?我是否在.htaccess中更改内容或在app.js中添加设置?所有其他类似问题都涉及服务器端查询,例如AJAX或使用$ https,当我根本不这样做时。它只是一个抛出错误的路线,当&#34; www&#34;存在,所以其他答案都不起作用。
答案 0 :(得分:-1)
好像你在同源策略中遇到了一些问题。关于它,这是一个很好的article 您的问题的可能解决方案(如果我理解正确)是在应用程序开始时使用以下行更改原点:
document.domain = "www.artlyticalmedia.com";