[JQUERY] 액세스 제어 요청 헤더, jQuery로 AJAX 요청의 헤더에 추가한다
JQUERY액세스 제어 요청 헤더, jQuery로 AJAX 요청의 헤더에 추가한다
해결법
-
1.당신이 파이어 폭스에서 본 것은 실제 요구하지 않았다; HTTP 메소드는 POST OPTIONS되지 않습니다. 실제로 브라우저가 도메인 간 AJAX 요청을 허용할지 여부를 결정 할 수있는 '비행 전'을 요청했다 :
당신이 파이어 폭스에서 본 것은 실제 요구하지 않았다; HTTP 메소드는 POST OPTIONS되지 않습니다. 실제로 브라우저가 도메인 간 AJAX 요청을 허용할지 여부를 결정 할 수있는 '비행 전'을 요청했다 :
http://www.w3.org/TR/cors/
비행 전 요청 액세스 제어 - 요청 - 헤더 헤더는 실제 요청 헤더의 목록이 포함되어 있습니다. 서버는 다음이 헤더는 브라우저을 제출하기 전에, 실제 요청을 이러한 맥락에서 지원 여부와 관계없이 다시보고 할 것으로 예상된다.
-
2.여기에 어떻게 jQuery를 Ajax 호출에 요청 헤더를 설정하는 예입니다 :
여기에 어떻게 jQuery를 Ajax 호출에 요청 헤더를 설정하는 예입니다 :
$.ajax({ type: "POST", beforeSend: function(request) { request.setRequestHeader("Authority", authorizationToken); }, url: "entities", data: "json=" + escape(JSON.stringify(createRequestObject)), processData: false, success: function(msg) { $("#results").append("The result =" + StringifyPretty(msg)); } });
-
3.다음이 코드는 나를 위해 작동합니다. 나는 항상 단지 작은 따옴표를 사용하고 그것을 잘 작동합니다. 당신은 작은 따옴표 또는 유일한 따옴표를 사용해야합니다 제안,하지만 혼합.
다음이 코드는 나를 위해 작동합니다. 나는 항상 단지 작은 따옴표를 사용하고 그것을 잘 작동합니다. 당신은 작은 따옴표 또는 유일한 따옴표를 사용해야합니다 제안,하지만 혼합.
$.ajax({ url: 'YourRestEndPoint', headers: { 'Authorization':'Basic xxxxxxxxxxxxx', 'X-CSRF-TOKEN':'xxxxxxxxxxxxxxxxxxxx', 'Content-Type':'application/json' }, method: 'POST', dataType: 'json', data: YourData, success: function(data){ console.log('succes: '+data); } });
-
4.당신이 당신의 CORS 있도록 사용자 정의 헤더를 보낼 수 있기 때문에 브라우저가 먼저 프리 플라이트 옵션은 서버가 요청을 할 수 있는지 확인을 요청 보내도록 요청은 간단한 요청하지 않습니다.
당신이 당신의 CORS 있도록 사용자 정의 헤더를 보낼 수 있기 때문에 브라우저가 먼저 프리 플라이트 옵션은 서버가 요청을 할 수 있는지 확인을 요청 보내도록 요청은 간단한 요청하지 않습니다.
서버에 CORS을 설정하면 다음 코드가 작동합니다. 당신은 또한 (여기에) 자바 스크립트 대신 가져올 수 있습니다
'? : //server.test-cors.org/server = TRUE & 상태 = 200 & 방법 = POST 및 헤더 = 내 - 우선 - 헤더, 내 - 두 번째 헤더를 사용 HTTPS'; URL이 = 보자 {(아약스 $ 입력 : 'POST', URL : URL, 헤더 : { "내-최초 헤더": "첫 번째 값" "내-두 번째 헤더": "두 번째 값" } }). 다 (기능 (데이터) { 경보 (데이터 [0] + .request.httpMethod '는 발송 된 - 오픈 크롬 콘솔> 네트워크는 그것을보고'); }); <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"> script>
여기서 (nginx.conf 파일)의 nginx에 CORS 온 구성 예이다 :
위치 ~ ^ / 인덱스 \ .PHP (/ | $) { ... add_header '액세스 제어 - 허용 - 원산지' "$ http_origin"항상; add_header '액세스 제어 - 허용 - 자격 증명' '사실'항상; 경우 ($ REQUEST_METHOD = 옵션) { add_header '액세스 제어 - 허용 - 원산지' "$ http_origin"; #이 줄을 제거하지 마십시오 ( '경우'위의 외부와 배) add_header '액세스 제어 - 허용 - 자격 증명' ''는 true, add_header '액세스 제어 - 최대 에이지'1728000; 이십일에 대한 # 캐시 프리 플라이트 값 add_header은 '액세스 제어 - 허용 - 방법', 'GET, POST, OPTIONS'; add_header '액세스 제어 - 헤더 허용' '내 - 우선 - 헤더, 내 - 두 번째 헤더, 인증, 콘텐츠 형식, 수락, 원산지를'; add_header '콘텐츠 길이'0; add_header '콘텐츠 유형' '텍스트 / 일반 캐릭터 세트 = UTF-8'; 204 리턴; } }
여기 아파치 (htaccess로 파일)에 CORS 온 구성 예는
# ------------------------------------------------- ----------------------------- # | 크로스 도메인 Ajax 요청 | # ------------------------------------------------- ----------------------------- # 출처 간 Ajax 요청을 사용합니다. # http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity # http://enable-cors.org/ #
# 헤더는 Access-Control-Allow-Origin 설정 "*" # IfModule> 지시어도 는 #header 세트 액세스 제어 - 허용 - 원산지 "http://example.com:3000" 는 #header 항상 설정 액세스 제어 - 허용 - 자격 증명을 "true"로 헤더는 Access-Control-Allow-Origin "*"로 설정 헤더는 항상 설정 액세스 제어 - 허용 - 방법 "POST, GET, 옵션, DELETE, PUT" 헤더는 항상 설정 액세스 제어 - 헤더 허용 "내-최초 헤더, 내 - 두 번째 헤더, 인증, 콘텐츠 형식, CSRF 토큰" -
5.그리고 그 옵션이 브라우저는 당신이 할 수 있습니다 무엇에 제한되어 있기 때문에 당신이 자바 스크립트와 봇을 만들 수없는 이유입니다. 당신은 다른 기원에 무작위로 요청을 보내는 대부분의 브라우저가 따르는 CORS 정책을 따르는 브라우저를 주문하고 단순히 응답을 얻을 수 없습니다!
그리고 그 옵션이 브라우저는 당신이 할 수 있습니다 무엇에 제한되어 있기 때문에 당신이 자바 스크립트와 봇을 만들 수없는 이유입니다. 당신은 다른 기원에 무작위로 요청을 보내는 대부분의 브라우저가 따르는 CORS 정책을 따르는 브라우저를 주문하고 단순히 응답을 얻을 수 없습니다!
당신이 브라우저와 함께 제공되는 개발자 도구에서 기원 헤더처럼 수동으로 일부 요청 헤더를 편집하려고하면 또한, 브라우저는 사용자의 편집을 거부하고 프리 플라이트 옵션 요청 보낼 수 있습니다.
-
6.랙 고르 보석을 사용해보십시오. 그리고 당신의 Ajax 호출의 헤더 필드를 추가합니다.
랙 고르 보석을 사용해보십시오. 그리고 당신의 Ajax 호출의 헤더 필드를 추가합니다.
from https://stackoverflow.com/questions/10093053/access-control-request-headers-is-added-to-header-in-ajax-request-with-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 정렬 배열 요소 (숫자 문자열), 자연 종류 (0) | 2020.10.03 |
---|---|
[JQUERY] Access 개체 도트 표기법 문자열을 사용하여 자식 속성 [중복] (0) | 2020.10.03 |
[JQUERY] 어떻게 jQuery를 사용하여 키보드의 Enter 키를 눌러 감지? (0) | 2020.10.03 |
[JQUERY] ASP.NET MVC에 jQuery를 사용하여 부분 뷰를 렌더링 (0) | 2020.10.03 |
[JQUERY] 스크롤에 더 많은 데이터를로드 jQuery를 (0) | 2020.10.03 |