在我们的网站中,有些页面是SSL,有些是非SSL.
例如:
http://www.example.com/search/patients
https://www.example.com/patients
现在我在http://www.example.com/search/patients页面上搜索病人,并通过jQuery $.ajax函数和dataType = json将服务器请求发送到https://www.example.com/patients.我无法获取数据.
问题:
>当我们从http请求https或https到同一服务器上的http时,我应该使用jsonp吗?
>如果我对两个URL都使用SSL,那么它只适用于dataType = json
谢谢
解决方法:
由于Same Origin Policy,只有在以下情况下才允许您的ajax请求:
域名,应用层协议和(在大多数浏览器中)端口
运行脚本的HTML文档的编号是相同的
在您的情况下,应用程序层协议是不同的,这就是您的脚本失败的原因.
可能的解决方案是
> JSONP,必须由服务器提供
> CORS,这是一个更“优雅”和干净的解决方案,但尚未完全支持IE(IE7不支持它,IE8有一些限制)