ฉันกำลังส่งแบบฟอร์ม (ผ่าน GET ตามที่ต้องการ) ไปยัง crm (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>
แค่ตั้งค่า https ใน URL ก็ใช้ไม่ได้มีวิธีใดบ้างที่ฉันสามารถส่งข้อมูลผ่าน GET และเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าขอบคุณของฉันได้
============================
ปัญหาที่นี่คือเนื้อหาผสมซึ่งหมายความว่าฉันโหลดหน้าผ่าน HTTPS และพยายามตีผ่าน AJAX API ที่อยู่ใน HTTP แต่เบราว์เซอร์ไม่อนุญาตให้เราทำเช่นนั้น
ดังนั้นหากคุณไม่สามารถตั้งค่า API ให้เป็น HTTPS ได้ (นี่เป็นกรณีของฉัน) เราก็ยังสามารถใช้วิธีนี้ได้ด้วยวิธีอื่น
ปัญหาหลักไม่ใช่ปัญหาเกี่ยวกับเนื้อหาแบบผสมเนื่องจากฉันต้องการส่งข้อมูลไปยัง API และเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าขอบคุณที่สวยงาม แทนที่จะใช้ AJAX ฉันสร้างไฟล์ php ที่รับข้อมูลส่งโดยใช้ curl ไปยัง API (เนื่องจากกำลังดำเนินการในฝั่งเซิร์ฟเวอร์จึงไม่มีปัญหาเนื้อหาผสม) และเปลี่ยนเส้นทางผู้ใช้ที่มีความสุขของฉันไปยังหน้าขอบคุณแฟนซี