[解決済み] HTTPSページでHTTP AJAXを実行すると「Mixed Content Blocked」と表示される。
質問
あるフォームを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 ファイルを作成し、API に curl を使用してデータを送信し (これはサーバー側で行われるため、混合コンテンツの問題はありません)、満足したユーザーをおしゃれなサンキュー ページにリダイレクトします。
どのように解決するのですか?
HTTPS を使用してブラウザでページを読み込むと、ブラウザは HTTP 経由のリソースの読み込みを拒否します。試してみたところ API の URL を HTTP ではなく HTTPS に変更すると、通常はこの問題を解決できます。 . しかし、あなたの API は HTTPS 接続を許可してはいけません。このため、メインページでHTTPを強制するか、HTTPS接続を許可するように要求する必要があります。
これについての注意。AJAXでロードしようとするのではなく、APIのURLにアクセスしても、リクエストはまだ動作します。これは、ブラウザが保護されたページ内からリソースを読み込むのではなく、安全でないページを読み込んでいるため、それを受け入れているためです。しかし、AJAXで利用できるようにするためには、プロトコルが一致する必要があります。
関連
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み】 Uncaught TypeError : undefined のプロパティ 'replace' を読み取れない In Grid
-
[解決済み] jQuery が Ajax 呼び出しの終了を待って戻るようにするにはどうすればよいですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] ajaxポストからのファイルダウンロードを処理する
-
[解決済み] Ajaxを使用して1つのフォームでデータとファイルの両方をアップロードする?
-
[解決済み】PHPによるjQuery Ajax POSTの例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
fetch ネットワークリクエストラッパーの説明例
-
Vue+ElementUIによる大規模なフォームの処理例
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
Vueでルートネスティングを実装する例
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
jq は html ページとデータを動的に分割する。