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経由でプロキシすることができます。ただし、HTTPの目的がユーザーの情報を保護することである場合は、サーバー間のルートがパブリックインターネットを経由しないように注意する必要があります。