使用https而不是http时,JSONP请求失败

dat*_*ser 19 api jquery google-app-engine jsonp

我有一个API客户端,它使用JQuery发出JSONP请求.当使用SSL时,此API客户端未使用SSL时,一切正常.

例如,我有一个URL http://apiclient.com,我正在从这个域发出以下JSONP请求:

$.ajax({
    url: url,
    dataType: "jsonp",
    contentType: "application/json; charset=utf-8",
    success: function(data)
    {
        $.each(data.services, function(index, service) {
            processService(service);
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

我看到对url中指定的API主机做出了适当的请求,成功的回调函数通过传递给它的格式正确的数据被正确调用.

但是,当我将API客户端的上述URL更改为https://apiclient.com时,API主机上未发现任何请求.我发现日志的任何一方都没有错误.

注意:API客户端唯一的区别是httphttps.

使用https域时,您是否需要以不同方式处理JSONP请求?

谢谢.

修改:此问题仅适用于Chrome.它适用于Firefox和Safari.但是我在FireFox上收到一个快速警告,询问我是否要从加密站点发出未加密的请求.我允许它,再也没有看到警告.

dat*_*ser 11

找到了解决方案.问题是JQuery和其他资源是从非安全站点导入的.解决方案是从https引用.