2015-11-01 84 views
0

我用我的应用程序查询“http”API,所以每次我在heroku上访问我的应用程序时(默认为https),CORS都会抱怨跨域请求。在heroku上强制使用http而不是https的角度js应用程序?

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

+0

如果您必须从https服务您的应用程序,则可以使用服务器作为代理来调用其他API – charlietfl

回答

0

作为一个解决方法,我写的所有航线请求httpshttp的AngularJS厂:

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

这家工厂包括在我所有的其他控制器和activate函数被调用。

请注意,如果您使用的浏览器扩展名为HTTPSEverywhere,则此功能无效。

相关问题