我有一个 API 客户端,它使用 JQuery 发出 JSONP 请求。当这个 API 客户端不使用 SSL 时一切正常,但是在使用 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);
});
}
});
我看到向 url 中指定的 API 主机发出了适当的请求,并且成功调用了回调函数,并将正确格式化的数据传递给它。
但是,当我将 API 客户端的上述 URL 更改为https://apiclient.com时,在 API 主机上没有观察到任何请求。我在日志的任何一侧都没有看到错误。
注意:唯一的区别是API 客户端上的http到https 。
使用 https 域时是否需要以不同方式处理 JSONP 请求?
谢谢。
编辑:此问题仅在 Chrome 中观察到。它适用于 Firefox 和 Safari。但是,我在 FireFox 上收到了一个快速警告,询问我即将从加密站点发出未加密的请求。我允许它,再也没有看到警告。