2017-12-21 32 views
0

내가 내 브라우저에서 내 서블릿에 요청을 만들고있어이 오류 메시지가 받고 있어요 : 프리 플라이트 요청 '아무튼CORS : 현재 없음 '액세스 제어 - 허용 - 원산지'헤더

응답을 패스 액세스 제어 검사 : 요청 된 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다. 따라서 원점 'http://localhost:3000'은 액세스 할 수 없습니다. 응답에 HTTP 상태 코드 405가있었습니다. 불투명 한 응답이 사용자의 요구를 충족시키는 경우 CORS가 비활성화 된 상태에서 자원을 페치하려면 요청 모드를 'no-cors'로 설정하십시오. 내 서버에

나는이 필터 만들었습니다

@Provider 
public class CORSFilter implements ContainerResponseFilter 
{ 

    @Override 
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException 
    { 
     responseContext.getHeaders().add("Access-Control-Allow-Origin", "*"); 
     responseContext.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization"); 
     responseContext.getHeaders().add("Access-Control-Allow-Credentials", "true"); 
     responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); 
     responseContext.getHeaders().add("Access-Control-Max-Age", "1209600"); 
    } 

} 

을 그리고 이것은 내 타이프 라이터 코드 :

var oHeaders = { 
     'Accept': 'text/html,application/xhtml+xml,application/xml,application/json;odata.metadata=minimal', 
     "Odata-Version": "4.0", 
     "Odata-MaxVersion": "4.0", 
     "Prefer": "odata.allow-entityreferences" 
    }; 

    var metadataRequest = 
    { 
     headers: oHeaders, 
     requestUri: "http://localhost:8080/olingo/odata/$metadata", 
     data: null 
    }; 

    this.odata$ = Observable.create(o => 
     oData.read(
     metadataRequest, 
     (data, response) => { 
      o.next({ data, response }); 
      o.complete(); 
     }, 
     (error) => o.error(error), 
     null 
    ) 
    ); 

어떤 아이디어?

답변

0

귀하의 요청에 Origin 헤더가 누락되었습니다. 이 항목 추가 : 자바 스크립트의 헤더에

'Origin': 'http://example.com' 

그리고 나뿐만 아니라 콘텐츠 형식 헤더를 추가하려고 할 것입니다 :

<?php 
    header("Access-Control-Allow-Origin: *"); 
?> 
: 그 어느 것도 문제가 해결되지 않으면

'Content-Type': 'text/html; charset=utf-8' // For example 

가 수동으로이 같은 페이지 상단의 수신 PHP 파일에 "Access-Control-Allow-Origin", "*" 추가