Mam formularz, który przesyłam (przez GET, ponieważ jest to wymagane) do CRM (ViciDial). Mogę pomyślnie przesłać formularz, ale jeśli to zrobię, plik przetwarzania w CRM po prostu wyświetli tekst o powodzeniu i to wszystko.
Zamiast tego tekstu chcę wyświetlić stronę z podziękowaniami w mojej witrynie, więc zdecydowałem się użyć AJAX do przesłania formularza i przekierowania go na potrzebną stronę, jednak w mojej przeglądarce pojawia się ten błąd:
Zawartość mieszana: strona pod adresem „ https://page.com ” została załadowana przez HTTPS, ale zażądała niezabezpieczonego punktu końcowego XMLHttpRequest „ http://XX.XXX.XX.XXX/vicidial/non_agent_api.php?queries=query=data ”. To żądanie zostało zablokowane; zawartość musi być dostarczana przez HTTPS.
To jest mój skrypt 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>
Samo ustawienie https w adresie URL nie zadziała. Czy jest jakiś sposób, w jaki mogę przesłać dane za pomocą GET i przekierować użytkownika na moją stronę z podziękowaniami?
============================
Problem dotyczył mieszanej zawartości, co oznacza, że załadowałem stronę przez HTTPS i próbowałem trafić przez AJAX do API, które było w HTTP. Ale przeglądarka nie pozwoli nam tego po prostu zrobić.
Więc jeśli nie możesz ustawić API na HTTPS (to był mój przypadek), nadal możemy podejść do tego w inny sposób.
Głównym problemem nie był problem z mieszaną zawartością, chodziło o to, że chciałem przesłać dane do API i przekierować użytkowników na fantazyjną stronę z podziękowaniami. Zamiast używać AJAX, utworzyłem plik php, który odbiera dane, wysyła je za pomocą curl do API (ponieważ jest to robione po stronie serwera, nie ma problemu z mieszaną zawartością) i przekierowuje mojego zadowolonego użytkownika na fantazyjną stronę z podziękowaniami.