2015-11-18 2 views
1

Итак, у меня есть ui-router в моем приложении, и все работает нормально. меня попросили сделать область счета сайта вынуждены 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' поэтому не допускается.

Я могу ввести URL (https://kudos-topspindigital.azurewebsites.net/account/signin), и это работает без каких-либо проблем. Я даже могу это сделать, опуская протокол https, и он будет перенаправлен без проблем, поэтому я могу только предположить, что с angularJS что-то не так.

Может кто-нибудь помочь мне исправить мою проблему?

ответ

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> 
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

Смежные вопросы