在HTTPS页面中运行HTTP AJAX操作时,“Mixed content blocked”(混合内容已阻止)。

12 浏览
0 Comments

在HTTPS页面中运行HTTP AJAX操作时,“Mixed content blocked”(混合内容已阻止)。

我有一个表单,我要将其提交(通过 GET 方式),提交到一个 CRM(ViciDial)。我可以成功提交表单,但如果我这样做,CRM 中的处理文件将只会回显一个成功文本,就是这样。

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

混合内容:在 HTTPS 加载的页面,但请求了一个不安全的 XMLHttpRequest 端点\'http://XX.XXX.XX.XXX/vicidial/non_agent_api.php?queries=query=data\'。这个请求被阻止了;内容必须通过 HTTPS 提供。

这是我的 AJAX 脚本:


只设置 URL 中的 HTTPS 不起作用,有没有办法可以通过 GET 提交数据并将用户重定向到我的感谢页面?

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

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

所以,如果您无法将 API 设置为 HTTPS(这是我的情况),我们仍然可以以不同的方式解决这个问题。

主要问题不是混合内容问题,而是我想要将数据提交到一个 API 并将用户重定向到一个漂亮的感谢页面。我没有使用 AJAX,而是创建了一个 PHP 文件,它接收数据,使用 curl 将其发送到 API(由于这是服务器端执行的,因此不存在混合内容问题),并将我的愉快用户重定向到一个漂亮的感谢页面。

admin 更改状态以发布 2023年5月21日
0
0 Comments

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

注意:如果您转到API URL而不是尝试使用AJAX加载它,则请求仍将起作用。这是因为浏览器不是从安全页面内加载资源,而是加载不安全的页面,并将其接受。然而,为了通过AJAX可用,协议应该匹配。

0
0 Comments

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

 

希望这可以帮助您,同时也为记录而做出贡献。

0