교차 원본 리소스 공유(CORS) 브라우저 요청이 요청 원본과 다른 원본의 리소스에 액세스할 수 있도록 하는 메커니즘입니다. 다른 출처에서 요청이 이루어지면 브라우저는 서버에 preflight OPTIONS 요청을 보내 서버가 요청을 허용하는지 확인합니다.
질문에 설명된 경우 브라우저는 preflight OPTIONS 요청을 보냅니다. HP ALM REST API에 요청합니다. 그러나 서버가 필요한 CORS 헤더로 응답하지 않아 "요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다."라는 오류가 발생합니다.
이 문제를 해결하는 방법에는 여러 가지가 있습니다.
CORS 사용 프록시:
CORS 프록시는 요청을 대상 서버로 전달하고 필요한 CORS 헤더를 응답에 추가합니다. 이는 대상 서버를 제어할 수 없는 경우 편리할 수 있습니다.
실행 전 요청 방지:
실행 전 요청을 방지하려면 요청이 Authorization 또는 Content-Type 헤더가 필요하지 않습니다. 이는 대체 인증 방법을 사용하거나 JSON 데이터를 쿼리 매개변수로 인코딩하여 달성할 수 있습니다.
와일드카드 문제 해결:
"Access-Control-Allow" 오류 -Origin 헤더는 와일드카드가 아니어야 합니다." 오류는 서버가 Access-Control-Allow-Origin 헤더에 대해 특정 원본 대신 와일드카드('*')를 지정할 때 발생합니다. 클라이언트를 요청합니다. 이 문제를 해결하려면 Access-Control-Allow-Origin 헤더를 요청 원본으로 설정하도록 서버를 구성하세요.
질문의 JavaScript 코드에 잘못된 헤더가 일부 있습니다. 실행 전 요청을 트리거합니다:
headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true');
이 헤더는 전송되지 않으므로 제거하세요. 요청하세요.
위 내용은 REST API에 액세스할 때 'No 'Access-Control-Allow-Origin' 헤더' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!