>  기사  >  백엔드 개발  >  내 AngularJS POST 요청이 프리플라이트 요청에 대해 404와 함께 실패하는 이유는 무엇입니까?

내 AngularJS POST 요청이 프리플라이트 요청에 대해 404와 함께 실패하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-03 14:56:30294검색

Why Does My AngularJS POST Request Fail with a 404 for the Preflight Request?

AngularJS POST 요청 실패: 실행 전 요청에 대한 HTTP 404

AngularJS에서 POST 요청 중에 해결되지 않은 "XMLHttpRequest를 로드할 수 없음" 오류가 발생할 수 있습니다. . 이는 실제 POST 이전의 실행 전 요청에 대한 잘못된 HTTP 상태 코드(404)로 인해 발생합니다. 실행 전 요청은 요청된 작업이 허용되는지 확인하여 CORS(Cross-Origin Resource Sharing) 정책을 준수하는지 확인하기 위한 것입니다.

근본 원인: CORS 헤더 누락

오류의 근본 원인은 서버가 실행 전 OPTIONS 요청을 적절하게 처리하지 못하기 때문에 발생합니다. 교차 출처 요청을 활성화하려면 서버가 적절한 CORS 헤더를 설정해야 합니다.

해결책: 서버 측 CORS 헤더 추가

SlimPHP에서는 CORS 헤더를 다음에 추가할 수 있습니다. 응답 객체:

<code class="php">$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type');
$app->response()->headers->set('Content-Type', 'application/json');
$app->response()->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
$app->response()->headers->set('Access-Control-Allow-Origin', '*');</code>

해결책: 클라이언트측 실행 전 요청 비활성화

또는 AngularJS에서 공통 헤더를 재설정하여 클라이언트측 실행 전 요청을 비활성화할 수 있습니다. :

<code class="js">app.config(function ($httpProvider) {
  $httpProvider.defaults.headers.common = {};
  $httpProvider.defaults.headers.post = {};
  $httpProvider.defaults.headers.put = {};
  $httpProvider.defaults.headers.patch = {};
});</code>

추가 고려 사항

민감한 데이터와 관련된 POST 요청의 경우 JWT(JSON 웹 토큰)와 같은 인증 및 권한 부여 메커니즘을 구현해야 할 수도 있습니다. 연결을 보호합니다. 보안 위반을 방지하려면 CORS를 철저히 이해하고 OPTIONS 요청을 적절하게 처리하는 것이 중요합니다.

위 내용은 내 AngularJS POST 요청이 프리플라이트 요청에 대해 404와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.