我在这里查看了这个链接:Dealing with HTTP content in HTTPS pages
我从这里尝试了关于开放协议的方法:http://benpowell.org/https-and-http-the-protocol-less-or-protocol-relative-urls/的
但是我只有一个对OpenWeathermap的HTTP URL的调用,它不通过HTTPS提供它的内容,除非你付给他们500/mo。我做不到
因此,我需要找到一种方法来引入OpenWeatherMap的HTTP内容,而不会在“任何”浏览器上生成“混合内容”错误消息。
下面是OWM的API调用:http://api.openweathermap.org/data/2.5/weather?lat=32.22&lon=-100.50&APPID=c6fdcf2d49a0bba3e14f310bd3d5cdc2的
任何想法,任何人?
谢谢,提前。
4条答案
按热度按时间mum43rcc1#
偶然发现这个线程,同时试图让我的应用程序托管在heroku上,同时使用开放天气MapAPI。
把这个放在url前面:
https://cors-anywhere.herokuapp.com/
这样URL就变成
https://cors-anywhere.herokuapp.com/http://api.openweathermap.org/data/2.5/forecast?appid=${API_KEY}
再次检查你的应用程序,注意openweather的url又是http了(和原来一样)!这个解决方案对我很有效,尽管CORS解决方案可能不会永远持续下去。
72qzrwbm2#
我能够让API加载到我的网站上,用一点php强制https。
基本上,我 curl 的http网站,并存储在我的域是https的网页上的结果,所以它的工作完美的我。
我写了一个小函数来帮我完成这项工作
字符串
完整片段
型
41ik7eoe3#
由于forecast.io更改为Dark Sky,并且他们不允许CORS,因此迫使您实现服务器端应用程序,因此我寻找适合小型前端项目的不同解决方案。
我找到了apixu.com,它似乎更适合像我这样的简单目的:FreeCodeCamp项目。
它们提供http和https调用。你每个月可以免费打5000个电话。
kxxlusnw4#
好的,要修复这个错误,只需确保所有外部资源都使用HTTPS。例如,如果您有像www.example.com这样的资源openweathermap.com,请将URL更改为使用https而不是http加载。如果它保持为http,它将无法正确加载,并且您将看到一堆JavaScript错误。
顺便说一句,我有一个网站,这是所有的HTTPS,但有时,它显示外部内容,如图像从RSS提要,和那些使用HTTP。我想这么做首先,我想去掉那些关于不安全内容的恼人的警告消息。相反,我想显示一个不那么侵入性的警告,也许用默认图标替换图像。其次,对于无法加载的图像,我想在用户的位置提供一些有用的东西。如果有一些JS代码可以找出哪些图像没有加载并用我们自己的图像替换它们,那就太棒了。
我不确定我们是否能完全避免警告,但让我们专注于实现第二个目标,这可能会奏效。