2013-11-27 2 views
1

그래서 저는 도메인 간 AJAX 요청을 자바 스크립트로 만들려고합니다.올바른 헤더 및 OPTIONS 요청을 사용하여 여전히 "No Access-Control-Allow-Origin 헤더가 요청 된 리소스에 있음"

내 OPTIONS 요청이 아무런 문제없이 실행되고 있으며 응답 헤더로 Access-Control-Allow-Origin:*이 표시됩니다. 후속 POST 요청을하려고 할 때 그러나, 나는 다음과 같은 오류 얻을 : 나는 포함한 내 OPTIONS 요청이 참으로 올바른 응답을 보내는 여러 번 확인한

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://phoenix-client.local' is therefore not allowed access.

액세스 제어는-허용 헤더를 -Origin하지만 브라우저는

어떤 아이디어 :(무시하는 것 같다

편집 - 나는 몰래 봤는데 몇 가지 :?

을 내 서버 s의 헤더를 업데이트하려고하는 경우 결말, 나를 제외하고 다른 사람들이 요청할 때 새로 업데이트 된 헤더를 가져옵니다. 마치 컴퓨터가 OPTIONS 요청에 대한 응답을 캐싱하는 것과 같습니다.

이것은 내 AJAX 요청 중 하나에서만 발생합니다. 요청이 실패하기 전에 여러 요청을하고 마지막 요청을 제외한 모든 요청이 올바르게 작동합니다.

EDIT !!!!

이 게시물을 업데이트 중입니다 (매우 늦게). 결국 CORS 오류가 발생하지 않았습니다. Chrome에서 잘못된 "Access-Control-Allow-Origin"오류가 발생하지만 AJAX 요청을 직접 실행하면 실제 오류가 발생합니다 (일반적으로 PHP 오류 메시지와 함께 오류 500이 발생 함) . 그래도 왜 이런 일이 일어나는지 확실하지 않습니다 ...

+4

''액세스 제어 허용 원점 '을 보내는 * 또한 * 요청입니까? –

+0

아니요, 액세스 제어 허용 원점을 보내지 않습니다. 단일 컴퓨터 (광산)에서이 문제가 발생하기 시작했습니다. 내부 IP 주소 –

+0

을 사용하여 내 로컬 서버에 원격으로 액세스 할 때도 다른 개발자가 사용할 수 있습니다. POST는 @ExplosionPills가 유추 한대로 Access-Control-Allow-Origin을 보내야합니다. –

답변

2

다른 사람들이이 문제에 부딪 힐 경우 위의 의견을 일부 결합 해 보겠습니다.

CORS 요청의 컨텍스트에서 네트워크 오류에 대한 매우 구체적인 동작을 간략하게 설명합니다. 프리 플라이트 요청의 경우 네트워크 오류 또는 2xx가 아닌 응답은 ACAO 헤더가 올바른 경우에도 CORS 오류로보고됩니다. 근본적인 요청에 대해서는 스펙을 이해 한 후에도 특정 오류가 표시되어야합니다. 즉, Chrome은 2xx가 아닌 기본 요청에 CORS 오류를 표시하는 것 같습니다. Chrome에서보고 된 버그 인 것 같습니다 : http://code.google.com/p/chromium/issues/detail?id=269192.

+0

이것도에 달하십시오. 즉, 갑자기이 오류가 발생하여 CORS가 정상적으로 작동하고 있다고 확신하는 경우 서버 응답에서 500 초 또는 기타 문제를 확인하십시오. Chrome이 잘못보고하고 있습니다. – skoczen