2015-11-18 99 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