問題描述
AngularJS 和 URL 重寫為 HTTPS (AngularJS and URL Rewrite to HTTPS)
所以我的應用程序中有 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://榮譽‑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 有問題。
有人可以幫我解決我的問題嗎?
http://kudos‑topspindigital.azurewebsites.net' 因此不允許訪問。我可以輸入網址(https://kudos‑topspindigital .azurewebsites.net/account/signin),這可以正常工作。我什至可以通過省略 https 協議來做到這一點,它會毫無問題地重定向,所以我只能假設 angularJS 有問題。
有人可以幫我解決我的問題嗎?
http://kudos‑topspindigital.azurewebsites.net' 因此不允許訪問。我可以輸入網址(https://kudos‑topspindigital .azurewebsites.net/account/signin),這可以正常工作。我什至可以通過省略 https 協議來做到這一點,它會毫無問題地重定向,所以我只能假設 angularJS 有問題。
有人可以幫我解決我的問題嗎?
因此不允許訪問。我可以輸入網址(https://kudos‑topspindigital.azurewebsites.net/account/signin) 並且這工作沒有任何問題。我什至可以通過省略 https 協議來做到這一點,它會毫無問題地重定向,所以我只能假設 angularJS 有問題。
有人可以幫我解決我的問題嗎?
因此不允許訪問。我可以輸入網址(https://kudos‑topspindigital.azurewebsites.net/account/signin) 並且這沒有任何問題。我什至可以通過省略 https 協議來做到這一點,它會毫無問題地重定向,所以我只能假設 angularJS 有問題。
有人可以幫我解決我的問題嗎?
),這沒有任何問題。我什至可以通過省略 https 協議來做到這一點,它會毫無問題地重定向,所以我只能假設 angularJS 有問題。有人可以幫我解決我的問題嗎?
),這沒有任何問題。我什至可以通過省略 https 協議來做到這一點,它會毫無問題地重定向,所以我只能假設 angularJS 有問題。有人可以幫我解決我的問題嗎?
參考解法
方法 1:
Try add HTTP header in your server response by:
"Access‑Control‑Allow‑Origin", "*"
This time, use server side script to return HTML instead pure html, for example, in PHP
<?php
header("Access‑Control‑Allow‑Origin: *");
方法 2:
Tbh the best way for me to do this was to set up a rule that pushed everything to HTTPS, not just the account stuff.
<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>