在HTTPS页面中运行HTTP AJAX操作时“混合内容被阻止”

我有一个表单,我正在向crm(ViciDial)提交(通过这种方式需要的GET)。我可以成功提交表单,但如果我这样做,crm的处理文件将只回显成功文本,仅此而已

我想在我的网站上显示一个感谢页面,而不是该文本,因此我决定使用AJAX提交表单并将其重定向到我需要的页面,但我在浏览器上遇到以下错误:

混合内容:页面位于’https://page.com’已通过HTTPS加载,
但请求了一个不安全的XMLHttpRequest端点
‘http://XX.XXX.XX.XXX/vicidial/non_agent_api.php?queries=query=data’.
此请求已被阻止;内容必须通过HTTPS提供

这是我的AJAX脚本:

<脚本>
SubmitFormClickToCall=函数(){
jQuery.ajax({
url:“http://XX.XXX.XX.XX/vicidial/non_agent_api.php",
数据:jQuery(“#表单点击调用”).serialize(),
键入:“获取”,
processData:false,
contentType:false,
成功:功能(数据){
window.location.href=”https://www.example.com/thank-you";
}
});
}
&lt/脚本>

仅仅在URL中设置https是行不通的,有没有办法让我通过GET提交数据并将用户重定向到我的感谢页面

============================

这里的问题是混合内容,这意味着我通过HTTPS加载了一个页面,并试图通过AJAX访问HTTP中的API。但是浏览器不允许我们这么做

因此,如果您不能将API设置为HTTPS(这是我的情况),我们仍然可以用不同的方法来实现这一点

主要的问题不是混合内容的问题,而是我想将数据提交到API,并将用户重定向到一个奇特的感谢页面。我没有使用AJAX,而是创建了一个接收数据的php文件,并使用curl将其发送到API(因为这是在服务器端完成的,没有混合内容问题),并将我的快乐用户重定向到一个奇特的感谢页面

我通过向HTML页面添加以下代码来解决这个问题,因为我们使用的是第三方API,它不受我们的控制

<meta http equiv=“内容安全策略”Content=“升级不安全请求”>

希望这会有所帮助,并记录在案

发表评论