报错:在一个网站下载pdf文件,在edge极速模式下下载报错,printExamCert:1 Mixed Content: The page at ‘https://ntcebm2.neea.edu.cn/apply/memapp/doLogin#’ was loaded over HTTPS, but requested an insecure form action ‘http://ntcebm2.neea.edu.cn/apply/common/mydown?fileName=ZKZ_14520801_20250307.pdf’. This request has been blocked; the content must be served over HTTPS.。但是切换到兼容模式(就是使用IE的模式)可以正常下载。
问题原因分析:
该问题是由于网页存在混合内容(Mixed Content) 导致的安全拦截。具体来说:
-
HTTPS页面中的HTTP请求:用户访问的页面通过安全的HTTPS协议加载,但页面内的表单提交目标(
action
)却指向不安全的HTTP协议URL(http://ntcebm2.neea.edu.cn/...
)。现代浏览器(如Edge极速模式)会默认阻止此类不安全请求。 -
兼容模式宽松处理:旧版IE或兼容模式对混合内容的限制较宽松,未强制阻止HTTP请求,因此下载能正常进行。
-
网站配置错误:网站后端生成表单时,错误地硬编码了HTTP协议的目标URL,而非使用相对协议(如
//ntcebm2...
)或直接HTTPS,导致协议不匹配。
解决方案:
对于普通用户的临时解决方法:
-
继续使用兼容模式:临时切换至IE兼容模式下载文件,但需注意潜在安全风险。
-
手动修改URL协议(需测试):
• 复制报错中的HTTP链接(如http://ntcebm2...pdf
)。
• 将链接开头的http://
改为https://
,直接粘贴到浏览器地址栏访问。
• 注意:若服务器不支持HTTPS下载,此方法可能失败。
针对网站管理员的根治方案:
-
修复表单的action URL:
• 将表单的action
属性改为HTTPS协议或使用协议相对URL(//ntcebm2...
),自动继承当前页面的协议。
• 示例代码修改:<!-- 错误写法(硬编码HTTP) --> <form action="http://ntcebm2.edu.cn/..."> <!-- 正确写法(协议相对) --> <form action="//ntcebm2.edu.cn/..."> <!-- 或直接强制HTTPS --> <form action="https://ntcebm2.edu.cn/...">
-
确保服务器支持HTTPS:
• 验证https://ntcebm2.edu.cn/apply/common/mydown?...
可正常访问,且SSL证书有效。
• 若原下载服务仅支持HTTP,需配置服务器启用HTTPS。 -
全站强制HTTPS:
• 通过服务器配置(如HSTS)或重定向规则,确保所有请求均通过HTTPS传输,避免混合内容问题。
不推荐的方案(存在安全风险):
• 降低浏览器安全设置:允许混合内容(在浏览器设置中关闭安全拦截),但这会暴露于中间人攻击风险,不建议使用。