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 중국어 웹사이트의 기타 관련 기사를 참조하세요!