Я обращаюсь к API-интерфейсу "http" с моим приложением, поэтому каждый раз, когда я обращаюсь к своему приложению на heroku (который по умолчанию включен https), CORS жалуется на запросы домена с кросс-началом.
Просить владельца API сделать это "https" не является вариантом, поэтому мне было интересно, можно ли заставить приложение всегда использовать http? Это встроенное приложение node.js. (Более конкретно, это приложение с угловым js-выражением yoman). В Rails я видел несколько сообщений в Stack OverFlow, в которых говорится, что это можно легко сделать с помощью config.force_ssl = false
, поэтому мне было интересно, может ли что-то подобное работать для приложения node.js (либо что-то в коде или на Heroku специально).
В качестве исправления я написал фабрику AngularJS, которая маршрутизирует все запросы https
на http
:
.factory('DisableSSL', function($location, $window){
return {
activate: function() {
if ($location.protocol() !== 'http') {
$window.location.href = $location.absUrl().replace('https', 'http');
}
}
};
})
Эта фабрика включена во все мои другие контроллеры и activate
функция activate
.
Обратите внимание, что это не работает, если вы используете расширение браузера, например HTTPSEverywhere.