为了账号安全,请及时绑定邮箱和手机立即绑定

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

在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脚本:    <script>    SubmitFormClickToCall = function(){        jQuery.ajax({            url: "http://XX.XXX.XX.XX/vicidial/non_agent_api.php",            data : jQuery("#form-click-to-call").serialize(),            type : "GET",            processData: false,            contentType: false,            success: function(data){                window.location.href = "https://www.example.com/thank-you";            }        });    }    </script>仅在URL中设置https是行不通的,有什么方法可以通过GET提交数据并将用户重定向到我的thankyou页面?===========================这里的问题是内容混合,这意味着我通过HTTPS加载了页面,并试图通过AJAX来访问HTTP中的API。但是浏览器不允许我们这样做。因此,如果您不能将API设置为HTTPS(这是我的情况),我们仍然可以采用其他方式来处理。主要问题不是混合内容问题,而是我想将数据提交到API并将用户重定向到精美的感谢页面。我没有使用AJAX,而是制作了一个php文件,该文件接收使用curl将其发送到API的数据(由于这是服务器端完成的操作,因此没有混合的内容问题),并将我满意的用户重定向到了精美的感谢页面。
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

如果您使用HTTPS在浏览器中加载页面,则浏览器将拒绝通过HTTP加载任何资源。正如您尝试过的那样,将API URL更改为使用HTTPS而不是HTTP通常可以解决此问题。但是,您的API必须不允许HTTPS连接。因此,您必须在主页上强制使用HTTP或请求它们允许HTTPS连接。

请注意以下事项:如果您转到API URL而不是尝试使用AJAX加载请求,则该请求仍然有效。这是因为浏览器未从安全页面内加载资源,而是正在加载不安全页面并接受该资源。为了使它可以通过AJAX使用,协议应该匹配。


查看完整回答
反对 回复 2019-12-27
?
哔哔one

TA贡献1854条经验 获得超8个赞

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


<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 

希望这会有所帮助,并且也有记录。


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 2225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信