【发布时间】:2020-08-14 23:12:59
【问题描述】:
我有一个在 HTTPS 上运行的网页 (https://website.co.uk/blog/expertise/),一些 javascript (XMLHttpRequest) 向同一域 (/ajax/articleindexlistingajax/loadmorearticles) 上的端点发出请求,这会导致混合内容错误:
Mixed Content: The page at 'https://website.co.uk/blog/expertise/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://website.co.uk/blog/expertise//ajax/articleindexlistingajax/loadmorearticles'. This request has been blocked; the content must be served over HTTPS.
- 该站点正在使用在 nginx/1.18.0 上运行的 Varnish,如果我绕过 Varnish,我不会收到错误提示
- 我已将 ^ajax 添加到清漆
vcl_recv中的缓存排除列表中,并且可以看到它针对此请求进入了后端
好像 Varnish 或 Nginx 正在剥离 https,但我完全不知道为什么。
【问题讨论】:
-
问题出在您的 AJAX 调用中,您正在调用
http://website.co.uk/blog/expertise//ajax/articleindexlistingajax/loadmorearticles而不是https -
调用实际上是对相对
/ajax/articleindexlistingajax/loadmorearticles的调用,因此它获取 https,这在绕过清漆时也有效,但返回到浏览器的似乎是 http -
目前在该链接上获得 404
-
那不是真正的网站