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을 통해 데이터를 제출하고 사용자를 감사 페이지로 리디렉션 할 수있는 방법이 있습니까?
============================
여기서 문제는 혼합 콘텐츠였습니다. 이것은 내가 HTTPS를 통해 페이지를로드하고 HTTP에있는 API를 AJAX를 통해 공격하려한다는 것을 의미합니다. 그러나 브라우저는 우리가 그렇게하는 것을 허용하지 않습니다.
따라서 API를 HTTPS로 설정할 수없는 경우 (제 경우) 다른 방식으로 접근 할 수 있습니다.
주요 문제는 혼합 콘텐츠 문제가 아니라 API에 데이터를 제출하고 사용자를 멋진 감사 페이지로 리디렉션하려는 것이 었습니다. AJAX를 사용하는 대신 데이터를 수신하는 php 파일을 만들어 curl을 사용하여 API로 보내고 (서버 측에서는 혼합 콘텐츠 문제가 없음) 행복한 사용자를 멋진 감사 페이지로 리디렉션합니다.
XX.XXX.XX.XX
HTTP 를 통해 프록시하기 위해 Apache에서 HTTPS URL을 만들 수 있습니다 . 그러나 HTTP의 목적이 사용자의 정보를 보호하는 것이라면 서버 간의 경로가 공용 인터넷을 통과하지 않도록주의해야합니다.