2017-09-11 8 views
2

이것은 거의 알려진 표준 오류이지만 기존 Stackoverflow 게시물을 사용하여 동일하게 수정할 수 없습니다.액세스 제어 문제를 해결할 수 없습니다.

XMLHttpRequest의 액세스 제어 검사를 통과하지 않는 프리 플라이트 요청에 https://myserver.com/context/
응답을로드 할 수 없습니다 :
없음 '액세스 제어 - 허용 - 원산지'헤더는 요청 자원에 존재합니다.
오리진 'https://www.otherwebsite.com'은 액세스 할 수 없습니다.
응답은 코드에 따라 HTTP 상태 코드 (405)

있었다 나는이 -

function setHeader(xhr) { 
    xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); 
} 

var url = "https://myserver.com/context/"; 
$.ajax({ 
    url: url, 
    type: 'GET', dataType:'json', 
    success: function(data) { 
     _this.question(data.question); 
     _this.questionId(data.questionId); 
     _this.choices(data.choices); 
    }, error: function() { 
     console.log("ERROR in getting microquestion"); 
    }, 
    beforeSend: setHeader 
}); 
+1

오류 메시지 읽기 : "_No 'Access-Control-Allow-Origin'헤더가 요청 된 리소스 __._"__._ " – Teemu

+1

*"프리 플라이트 요청에 대한 응답으로 HTTP 상태 코드 405를 가졌습니다. "*는 시작할 것임을 나타냅니다 , "정상적인"요청을 위해 올바른 CORS 헤더를 보내도록 이미 설정되어 있어도 OPTIONS 요청을 올바르게 처리하도록 https : // myserver.com/context/끝점을 구성해야합니다. 자세한 내용은 https://stackoverflow.com/questions/43871637/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe/43881141#43881141에서 답변을 읽어보십시오. 그러나 그것의 요지는 서버가 2xx 성공 상태 코드 – sideshowbarker

+0

으로 OPTIONS 요청에 응답해야한다는 것입니다. 어떤 오류가 지적했는지 알았습니다. 문제는 서버 측에서 발생했습니다. 그것이 "요청 된 자원"이 의미하는 것입니다. 내가 명시 적으로 지적한 @sideshowbarker에게 감사한다. 너 둘 다 upvoting – comiventor

답변

1

"프리 플라이트 요청에 응답 ... HTTP 상태 코드 (405)를했다" 메시지에 나타냅니다 시작하려면 https://myserver.com/context/ 끝점을 OPTIONS 요청을 올바르게 처리하도록 구성해야합니다 ("정상"요청에 대해 올바른 CORS 헤더를 다시 보내도록 이미 설정되어 있더라도). 당신이 그것의 요점 -하지만 No 'Access-Control-Allow-Origin' header is present on the requested resource—when trying to get data from a REST API에서 답을 읽을 수있는 내용

이며, 최소, 서버는 2xx 성공 상태 코드가 OPTIONS 요청에 응답해야합니다.