是否可以从HTTPS向HTTP发出JSONP请求?

时间:2012-08-31 08:52:34

标签: javascript jquery web-services cross-domain jsonp

我知道有一个几乎重复的问题,但答案根本不令人满意。

我需要使用通过HTTP运行的Openstreetmap服务进行地理编码。

我的网站通过HTTPS运行。

似乎不可能从https到http进行JSONP请求,浏览器(Chrome)会抱怨不安全的内容。

任何解决方案?

3 个答案:

答案 0 :(得分:5)

浏览器抱怨内容不安全的原因是内容不安全。使用安全页面的整个目的是所有这些都是安全的,并且可以信任。

您可以在安全网站中设置请求不安全内容的代理页面。在那里你应该在发送到浏览器之前验证内容,这样它实际上是安全的,而不仅仅是假装是安全的。

答案 1 :(得分:3)

如果您希望向在HTTP下运行的外部服务发出POST请求,而初始请求来自HTTPS,则始终将其视为不安全。 据我所知,没有办法绕过它。

您可以做的是POST到您的后端,它向在HTTP下运行的服务发送另一个POST请求。从那里只返回HTTP服务返回的值。

答案 2 :(得分:3)

对于他可能关心的人,这就是我自己解决的问题。

1)我的Javascript代码使用我需要转发到服务的参数调用服务器上的AJAX页面

2)AJAX页面使用地址

通过CURL发出请求

3)我清理响应并将其转换为JSON

4)使用Javascript的回调成功我使用数据