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