我在切换到多个资产的SSL后,在我的网站上收到了SSL警告消息:
混合内容:' https://example.com'是通过HTTPS加载的, 但要求一个不安全的脚本' http://example.com/script.js'。这个 请求已被阻止;内容必须通过HTTPS提供。
这些都没有显示单个http://请求。我没有想法试图找到造成这种情况的原因。有什么想法或建议吗?
答案 0 :(得分:3)
当查看有关http://example.com/script.js
(非https)网址的混合内容消息时,该网址实际上并未出现在您的来源的任何位置,请遵循以下基本策略:
http
替换为https
,并将其放入浏览器的地址栏中:https://example.com/script.js
https://example.com/script.js
网址重定向回(非https)http://example.com/script.js
,那么您就找到了原因:example.com/script.js
实际上无法从{{{{}}获得1}}网址,即使您的来源正在请求https
网址,也会从http
网址获得投放。答案 1 :(得分:0)
我对这个问题的 2 美分。
我在一个域上托管了一个项目,该项目可以完美运行。
我需要使其国际化,因此我将 master 分支克隆到一个新分支,进行一些必要的文本更改并使用来自新分支的代码部署新站点(新域)。
一切正常,除了 1 个 ajax 调用(api 路由)由于混合内容而被阻止。
首先,我检查了这 3 件事:
这很奇怪,因为这两个域都使用 Cloudflare 并且它们的后端设置是相同的,代码是相同的(只有新的文本更改)但对于新设置,1 个特定的 api 路由存在控制台错误,其他所有(页面上大约有 20 多个 ajax 请求)都可以正常工作。他们甚至使用相同的函数来发出Ajax请求,所以绝对不是配置错误。
经过一番调查,我发现了问题:
“有问题”的呼叫以 /
结尾。例如,所有其他调用都用于:
https://example.com/api/posts
https://example.com/api/users
这个特别的人正在向
提出请求https://example.com/api/todos/
最后的斜线使其因混合内容问题而失败。我不确定为什么这会导致问题,以及它在原始站点上如何不是问题(因为相同的 ajax 调用工作得很好),但它确实解决了我的问题。
如果我找出导致 /
如此惨败的原因,我会发布更新。