CORS 및 Access-Control-Allow-Header는 어떻게 작동합니까?
CORS 요청 POST를 하려고 합니다.domain.example
로.a.domain.example
.
내 자바스크립트는 이렇게 생겼습니다.
$('#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.example/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.example
Origin:http://domain.example:3000
Referer:http://domain.example:3000/home
옵션 응답
Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin:http://domain.example:3000
Connection:keep-alive
Content-Length:0
Content-Type:text/html;charset=utf-8
그 요청은 200개와 같은 것으로 다시 들어옵니다.내 서버에서, 나는 다음과 같은 경로를 가지고 있습니다.POST
방법 그리고 이것은 내가 답례로 얻는 것입니다.OPTIONS
Request URL:https://a.domain.example/some/route
요청 게시
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryjwr5Pk7WBcfzMdbO
Origin:http://domain.example:3000
Referer:http://domain.example:3000/home
그리고.POST
요청이 취소되었습니다/fails.
제 질문은 POST 컨트롤러에 access-control-allow-origin도 있어야 합니까?
도메인이 있는 인증용 쿠키가 있습니다..domain.example
그 쿠키는 요청에 따라 한 번 발송되었는데 지금은 발송되지 않고 있습니다.왜 그런 일이 벌어지는지 아십니까?
예, 머리말이 있어야 합니다.Access-Control-Allow-Origin: http://domain.example:3000
아니면Access-Control-Allow-Origin: *
Options 응답과 POST 응답 모두에 적용됩니다.머리글을 포함해야 합니다.Access-Control-Allow-Credentials: true
POST 응답을 통해서도.
OPTIONS 응답에는 머리글도 포함되어야 합니다.Access-Control-Allow-Headers: origin, content-type, accept
요청한 헤더와 일치합니다.
언급URL : https://stackoverflow.com/questions/12630231/how-do-cors-and-access-control-allow-headers-work
'programing' 카테고리의 다른 글
ASP.NET 전자 메일 검사기 regex (0) | 2023.09.26 |
---|---|
C 복합 리터럴, 배열 포인터 (0) | 2023.09.26 |
Mysql 하위 선택이 매우 느립니다. (0) | 2023.09.26 |
Laravel 마이그레이션 기본(또는 키) "식별자 이름이 너무 깁니다." (0) | 2023.09.26 |
MySQL의 다른 일부 열과 함께 고유 열 선택 (0) | 2023.09.26 |