使用AJAX GET 操作處理HTTPS 頁面中的混合內容錯誤
從HTTPS 頁面向HTTP 端點提交GET 請求時,您可能會請求遇到「混合內容被阻止」錯誤。出現此錯誤的原因是瀏覽器阻止在安全 HTTPS 頁面上載入不安全的 HTTP 內容。
範例:
考慮此AJAX 腳本:
$.ajax({ url: "http://example.com/api", success: function(data) { // Redirect to HTTPS thank-you page window.location.href = "https://thankyou.com"; } });
在HTTPS 頁面(https://mypage.com) 上執行此腳本時,瀏覽器將因混合內容而阻止對HTTP 端點(http://example.com/api) 的請求。
解決方案:
雖然將 API 端點更改為 HTTPS 是理想的選擇,但並非總是可行。這是一個替代方案:
1。建立 PHP 檔案:
建立一個透過 POST 接收表單資料的 PHP 檔案(例如 process_form.php)。
2.處理 PHP 檔案中的 POST 要求:
在 PHP 檔案中,使用 cURL 將資料傳送到 HTTP API。
<?php $api_url = "http://example.com/api"; $post_data = $_POST; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data)); $result = curl_exec($ch); curl_close($ch); // Redirect to thank-you page header("Location: https://thankyou.com"); ?>
3.將表單提交至 PHP 檔案:
將表單的操作改為 PHP檔案:
<form action="process_form.php" method="post"> <!-- Form fields --> <input type="submit" value="Submit"> </form>
4.停用嚴格混合內容檢查(選用):
如果上述解決方案不起作用,您可以在HTML 頁面中新增以下元標記以停用嚴格混合內容檢查:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
注意:這不是建議的解決方案,因為它允許在安全頁面上載入不安全的內容。
以上是如何使用 AJAX GET 操作處理 HTTPS 頁面中的混合內容錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!