2015-11-18 66 views
1

所以我有我的应用程序中的ui路由器,一切工作正常。 有人问我,使网站的账号面积被迫HTTPS,所以我成立了这个规则:AngularJS和URL重写为HTTPS

我对那个带你到主要的“查看”链接登录页面和链接看起来就像这样:

<a class="link-primary" ui-sref="login" ng-switch-default>Sign in</a> 

国家规则设置如下所示:

.state('login', { 
    url: '/account/signin', 
    params: { 
     returnState: null, 
     returnParams: null 
    }, 
    templateUrl: '/assets/tpl/account/signin.tpl.html', 
    controller: 'LoginController', 
    controllerAs: 'controller', 
    resolve: { 
     pageTitle: ['PageHead', function (service) { 
      service.setTitle('Kudos Sports - Login'); 
     }] 
    } 
}) 

当我点击我得到一个错误信息的链接:

的XMLHttpRequest无法加载https://kudos-topspindigital.azurewebsites.net/assets/tpl/account/signin.tpl.html。请求的资源上没有“Access-Control-Allow-Origin”标题。因此不允许访问原产地'http://kudos-topspindigital.azurewebsites.net'。

我可以输入这个网址(https://kudos-topspindigital.azurewebsites.net/account/signin),这工作没有任何问题。我甚至可以通过省略https协议来做到这一点,它会重定向而不会出现任何问题,所以我只能假设angularJS有问题。

有人可以帮我解决我的问题吗?

回答

0

TBH最好我做这件事的方法是建立一条规则,将所有内容都推送到HTTPS,而不仅仅是帐户内容。

<rule name="Redirect .com to www" patternSyntax="Wildcard" stopProcessing="true"> 
     <match url="*" /> 
     <conditions logicalGrouping="MatchAny"> 
     <add input="{HTTP_HOST}" pattern="kudos-sports.co.uk" /> 
     <add input="{HTTP_HOST}" pattern="kudos-sports.com" /> 
     <add input="{HTTP_HOST}" pattern="kudos-sportswear.co.uk" /> 
     <add input="{HTTP_HOST}" pattern="kudos-sportswear.com" /> 
     <add input="{HTTP_HOST}" pattern="www.kudos-sports.co.uk" /> 
     <add input="{HTTP_HOST}" pattern="www.kudos-sportswear.co.uk" /> 
     <add input="{HTTP_HOST}" pattern="www.kudos-sportswear.com" /> 
     <add input="{HTTP_HOST}" pattern="kudos-sports.azurewebsites.net" /> 
     </conditions> 
     <action type="Redirect" url="https://www.kudos-sports.com{REQUEST_URI}" /> 
    </rule> 
1

试着在你的服务器的回应HTTP标头:

"Access-Control-Allow-Origin", "*" 

这个时候,使用服务器端脚本返回HTML而不是纯HTML,例如PHP

<?php 
header("Access-Control-Allow-Origin: *"); 
+0

它只是HTML,没有(对于该位) – r3plica

+0

没有服务器端则索引HTML应该由HTTPS发送,而不是HTTP,那么所有的很好,只是让他们在同一个域和协议 – Tom

+0

他们,这是我不明白的 – r3plica