最佳答案
我有一个表单,我提交(通过获取,因为它是必需的这种方式)到一个客户关系管理机构(ViciDial)。我可以成功地提交表单,但是如果我这样做,在 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 提交数据并将用户重定向到我的感谢页面?
这里的问题是混合内容,这意味着我通过 HTTPS 加载页面,并试图通过 AJAX 命中一个在 HTTP 中的 API。但是浏览器不允许我们这么做。
因此,如果您不能将 API 设置为 HTTPS (这是我的情况) ,我们仍然可以以不同的方式处理这个问题。
主要的问题不是内容混杂的问题,而是我想将数据提交到一个 API,并将用户重定向到一个花哨的感谢页面。我没有使用 AJAX,而是创建了一个 php 文件,用 curl 将数据发送到 API (因为这是在服务器端完成的,所以没有混合内容的问题) ,并将我快乐的用户重定向到一个花哨的感谢页面。