如何解决通过Varnish / Nginx发出AJAX请求时如何停止混合内容错误
我有一个在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,但我完全不知道为什么。
解决方法
似乎需要更改基本URL。
看看上面的错误消息,它抱怨的地址是http://website.co.uk/blog/expertise//ajax/...
。双斜杠在某处看起来像是concat,因此我猜是将您的相对/ajax/...
路径连接到基本URL http://website.co.uk/blog/expertise/
上。如果可以找到从那里获取基本URL的位置,请将其更改为使用HTTPS,并可能删除斜杠,例如https://website.co.uk/blog/expertise
。
通常在网站构建器的设置中定义基本URL,因此网站知道如何构造重新访问或重定向URL。站点通常位于代理之后,并且SSL通常在它们看到请求之前就被终止了,因此,如果不预先配置它的静态部分,外部URL的真实外观就不明显了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。