Program Club

CORS 및 Access-Control-Allow-Headers는 어떻게 작동합니까?

proclub 2020. 11. 28. 12:48
반응형

CORS 및 Access-Control-Allow-Headers는 어떻게 작동합니까?


domain.com에서 a.domain.com으로 CORS 요청 POST를 만들려고합니다.

내 자바 스크립트는 다음과 같습니다.

$('#fileupload').fileupload({
  xhrFields: {
    withCredentials: true
  },
  dataType: 'json',
  url: $('#fileupload').data('path'),
  singleFileUploads: true,
  add: function(e, data){
    data.submit();
  }
});

처음에는 OPTIONS 경로가 다음과 같이 호출되는 것을 봅니다.

Request URL: https://a.domain.com/some/route
Request Method:OPTIONS
Status Code:200 OK

옵션 요청 :

Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Host:a.domain.com
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home

옵션 응답

Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin:http://domain.com:3000
Connection:keep-alive
Content-Length:0
Content-Type:text/html;charset=utf-8

그 요청은 200 명과 함께 돌아옵니다. 내 서버에는 POST메서드와 동일한 경로가 있으며 이것이OPTIONS

Request URL:https://a.domain.com/some/route

요청 후

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryjwr5Pk7WBcfzMdbO
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home

그리고 POST요청 / 실패 취소됩니다.

내 질문은 POST 컨트롤러에서도 access-control-allow-origin이 필요합니까?

.domain.com요청에서 쿠키가 한 번 전송되었지만 지금 전송되지 않는 도메인 이있는 인증 용 쿠키가 있습니다. 왜 그런 일이 일어날 지 아십니까?


예, 헤더가 필요 Access-Control-Allow-Origin: http://domain.com:3000하거나 Access-Control-Allow-Origin: *옵션 응답과 POST 응답 모두를. Access-Control-Allow-Credentials: truePOST 응답에도 헤더 포함해야 합니다.

OPTIONS 응답에는 Access-Control-Allow-Headers: origin, content-type, accept요청 된 헤더와 일치하는 헤더도 포함되어야합니다 .


PHP를 사용하여 다음 줄을 추가하는 경우

header ( " Access -Control- Allow-Origin : *") ;
header ( " Access- Control-Allow -Headers : *") ;

아마도 당신의 문제를 해결할 것입니다

참고 URL : https://stackoverflow.com/questions/12630231/how-do-cors-and-access-control-allow-headers-work

반응형