尝试从 HTTPS 页面执行 HTTP AJAX 操作时,您可能会遇到“混合内容被阻止”错误。当浏览器检测到从安全 HTTPS 页面发出不安全的 HTTP 请求时,就会出现这种情况。
要解决此问题,您可以使用以下解决方案:
如果目标 API 支持 HTTPS,您应该更新 AJAX 请求以使用 HTTPS 协议:
url: "https://XX.XXX.XX.XX/vicidial/non_agent_api.php",
如果无法更改 API 协议,您可以将以下元标记添加到 HTML 页面以允许混合内容:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
这将指示浏览器自动将不安全的HTTP请求升级为HTTPS,解决混合内容问题。
如果之前的解决方案不可行,您可以创建一个服务器端代理脚本来接收 HTTP AJAX 请求并使用 HTTPS 将其转发到目标 API:
<?php // Read and parse incoming data $data = $_GET; // Send data to API via HTTPS $result = file_get_contents("https://XX.XXX.XX.XX/vicidial/non_agent_api.php?queries=" . http_build_query($data)); // Redirect user to thank-you page header("Location: https://www.example.com/thank-you"); ?>
以上是如何修复 HTTPS 站点上 AJAX 调用的'混合内容被阻止”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!