AngularJS和URL重写为HTTPS

时间:2015-11-18 23:41:44

标签: angularjs ssl url-rewriting

所以我的应用程序中有ui-router,一切都运行正常。 我被要求使网站的帐户区域强制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有问题。

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

2 个答案:

答案 0 :(得分:1)

尝试通过以下方式在服务器响应中添加HTTP标头:

<object height="100%" width="100%"> 
<param name="movie" 
value="http://player.soundcloud.com/player.swf?url=<?=print_field($data,'sound_link') ?>&auto_play=false&player_type=artwork&color=000000"></param>
                                    <param name="allowscriptaccess" value="always"></param>
                                    <embed allowscriptaccess="always" height="100%" src="http://player.soundcloud.com/player.swf?url=<?=print_field($data,'sound_link') ?>&auto_play=false&player_type=artwork&color=000000" type="application/x-shockwave-flash" width="100%"></embed>
                                </object>

这一次,使用服务器端脚本返回HTML而不是纯HTML,例如,在PHP

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

答案 1 :(得分:0)

对我而言,最好的方法是设置一个将所有内容都推送到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>