REST api과 연결된 각도 앱으로 작업하고 있습니다.CORS 프리 플라이트는 200을 반환하지만 후속 PUT은 발생하지 않습니다. (외부 REST API를 사용하는 Angular JS)
내 GET 요청이 예상대로 작동하도록 액세스 제어를 설정했습니다. (브라우저는 프리 플라이트 OPTIONS 요청을 보낸 다음 GET을 실행합니다.)
그러나 PUT에 문제가 있습니다.
문제은 PUT의 경우 프리 플라이트 옵션이 정상으로 돌아가는 것으로 보이지만 PUT은 절대 실행되지 않습니다.
먼저 무엇이 작동하고 무엇이 실패하는지 보여줍니다. 나는 전화를 찰스에게 찰스를 사용하고 있습니다. (작동)
GET
1) 플라이트 요청
OPTIONS /v1/account HTTP/1.1
Host api.mysite.com
Access-Control-Request-Method GET
Origin http://127.0.0.1:9000
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
Access-Control-Request-Headers accept, authorization
Accept */*
Referer http://127.0.0.1:9000/
Accept-Encoding gzip,deflate,sdch
Accept-Language en-US,en;q=0.8
2) 플라이트 응답
HTTP/1.1 200 OK
Server nginx/1.6.0
Date Wed, 21 May 2014 15:43:25 GMT
Content-Type application/octet-stream
Content-Length 0
Connection keep-alive
Access-Control-Allow-Origin *
Access-Control-Allow-Methods *
Access-Control-Allow-Headers Origin, X-Requested-With, Content-Type, Accept, Authorization, WWW-Authenticate, X-BLURR-DEBUG
Access-Control-Allow-Credentials true
3) GET 요청
GET /v1/account HTTP/1.1
Host api.mysite.com
Accept application/json, text/plain, */*
Origin http://127.0.0.1:9000
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
AUTHORIZATION DFHD8D...
Referer http://127.0.0.1:9000/
Accept-Encoding gzip,deflate,sdch
Accept-Language en-US,en;q=0.8
작동하지4) GET 응답
{ some json as expected }
PUT() 이제
는 여기 괜찮 프리 플라이트 응답을 반환하는 것 같다하지만, PUT 요청에 도달 결코 PUT입니다 :
1) 플라이트 요청
OPTIONS /v1/account HTTP/1.1
Host api.mysite.com
Access-Control-Request-Method PUT
Origin http://127.0.0.1:9000
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
Access-Control-Request-Headers accept, authorization, content-type
Accept */*
Referer http://127.0.0.1:9000/
Accept-Encoding gzip,deflate,sdch
Accept-Language en-US,en;q=0.8
,2) 프리 플라이트 응답
HTTP/1.1 200 OK
Server nginx/1.6.0
Date Wed, 21 May 2014 15:51:41 GMT
Content-Type application/octet-stream
Content-Length 0
Connection keep-alive
Access-Control-Allow-Origin *
Access-Control-Allow-Methods *
Access-Control-Allow-Headers Origin, X-Requested-With, Content-Type, Accept, Authorization, WWW-Authenticate, X-BLURR-DEBUG
Access-Control-Allow-Credentials true
문제
PUT에 대한 프리 플라이트 반응이 좋아 것 같다, 그래서 브라우저가 실제를 전송하지 왜 모르겠어요 PUT 요청.
어떤 도움이나 지침이 좋을 것입니다! 고맙습니다.