强制使用heroku上的角度js app来使用http而不是https?

时间:2015-11-01 18:35:24

标签: angularjs http heroku https

我正在查询" http" API与我的应用程序,所以每次我访问heroku上的应用程序(默认情况下启用https),CORS抱怨跨源域请求。

要求API的所有者制作它" https"不是一个选项,所以我想知道是否有可能强制我的应用程序始终使用http?这是一个node.js构建的应用程序。 (更具体地说,它是一个由yeoman生成的角度js应用程序)。在Rails中,我在Stack OverFlow上看过几篇文章说这可以通过类似config.force_ssl = false的东西轻松完成,所以我想知道类似的东西是否适用于node.js应用程序(代码中的某些东西)或者特别是在Heroku上。

1 个答案:

答案 0 :(得分:0)

作为修复,我编写了一个AngularJS Factory,将所有https个请求路由到http

  .factory('DisableSSL', function($location, $window){
    return {
      activate: function() {
        if ($location.protocol() !== 'http') {
          $window.location.href = $location.absUrl().replace('https', 'http');
        }
      }
    };
  })

此工厂包含在我的所有其他控制器中,并调用activate函数。

请注意,如果您使用的是HTTPSEverywhere等浏览器扩展程序,则无效。