我有一个 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 主机发出了适当的请求,并且 success 中的回调函数被正确调用,并传递了正确格式的数据。
但是,当我将上述 API 客户端的 URL 更改为 https://apiclient.com 时, 在 API 主机上没有观察到请求。我在日志的两边都没有看到错误。
注意:唯一的区别是 API 客户端的 http 到 https。
使用 https 域时是否需要以不同方式处理 JSONP 请求?
谢谢。
编辑: 此问题仅在 Chrome 中出现。它适用于 Firefox 和 Safari。 然而,我在 FireFox 上收到了一条快速警告,询问我即将从 加密站点。我允许了,再也没有看到警告。
最佳答案
找到解决方案。问题是 JQuery 和其他资源是从非安全站点导入的。解决方案是从 https 引用。
关于jquery - 使用 https 而不是 http 时 JSONP 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133484/