AngularJS和URL重写为HTTPS
所以我的应用程序中有ui路由器,一切都很好。 我被要求将站点的帐户区域设置为强制HTTPS,因此我设置了以下规则: 我在主“视图”上有一个链接,可将您带到登录页面,该链接如下所示:AngularJS和URL重写为HTTPS,angularjs,ssl,url-rewriting,Angularjs,Ssl,Url Rewriting,所以我的应用程序中有ui路由器,一切都很好。 我被要求将站点的帐户区域设置为强制HTTPS,因此我设置了以下规则: 我在主“视图”上有一个链接,可将您带到登录页面,该链接如下所示: <a class="link-primary" ui-sref="login" ng-switch-default>Sign in</a> .state('login', { url: '/account/signin', params: { return
<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。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”
我可以键入url(),这样做不会出现任何问题。我甚至可以通过省略https协议来做到这一点,它将无问题地重定向,因此我只能假设angularJS有问题
有人能帮我解决问题吗?尝试通过以下方式在服务器响应中添加HTTP头:
"Access-Control-Allow-Origin", "*"
这一次,使用服务器端脚本返回HTML,而不是纯HTML,例如在PHP中
<?php
header("Access-Control-Allow-Origin: *");
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>
它只是HTML,没有服务器端(对于这一点),那么索引HTML应该通过https发送,而不是http,然后一切正常,只是将它们保持在相同的域和协议中,这就是我不理解的