요청 가져오기 - 범위가 지정됨, 전역
Fetch Request API에는 애플리케이션이 서버에서 JSON, 텍스트 또는 이진 데이터와 같은 리소스를 비동기적으로 요청하고 응답을 처리할 수 있도록 Request 개체를 생성하거나 검색하는 메서드가 포함되어 있습니다. 이 API는 GET, POST, PUT, DELETE 등의 다양한 HTTP 메서드를 지원합니다.
- 가져오기 - 가져오기(문자열 자원, 객체 옵션): 네트워크에서 자원을 가져오는 프로세스를 시작합니다.
- 헤더 가져오기 - 범위 지정, 전역: 요청 및 응답 헤더를 검색하고 수정합니다.
- 요청 가져오기 - 범위가 지정됨, 전역: 새 요청 객체를 생성합니다.
- RequestInit 가져오기 - 범위가 지정됨, 전역: 가져오기 요청을 구성하는 옵션을 설정합니다.
- 응답 가져오기 - 범위가 지정됨, 전역: 새 응답 객체를 생성합니다.
가져오기 작업을 지원하기 위해 시스템 속성 glide.hosts.allowlist를 사용하면 가져오기 메서드가 액세스할 수 있는 호스트를 제어할 수 있습니다. RestMessageV2와 같은 HTTP API 및 위에서 언급한 API에 적용됩니다. glide.hosts.allowlist에 대한 자세한 내용은 문서를 참조하십시오Available system properties.
요청 속성
Fetch Request API는 HTTP 요청에 대한 자세한 정보를 제공하는 여러 읽기 전용 속성을 지원합니다. 여기에는 url (요청의 URL), method (HTTP 메서드), headers (연결된 헤더) 및 body (스트림으로서의 요청 본문)가 포함됩니다. 다른 속성으로는 캐싱, 자격 증명 및 참조자에 대한 설정이 있습니다. 이러한 속성은 읽기 전용이므로 요청이 생성된 후에는 액세스할 수 있지만 수정할 수는 없습니다. 각 속성에 대한 자세한 내용은 문서를 참조하십시오 https://developer.mozilla.org/en-US/docs/Web/API/Request.
| 속성 이름 | 설명 | 예제 |
|---|---|---|
| 본문 | 준비 전용 속성입니다. 요청에 추가된 본문 내용과 함께 읽을 수 있는 바이트 데이터 스트림을 포함합니다. 데이터 형식/값: ReadableStream 또는 null입니다. |
|
| body사용됨 | 준비 전용 속성입니다. 요청 본문을 아직 읽지 않았는지 여부를 나타내는 플래그입니다. 수락된 값:
데이터 유형: 부울 |
|
| 캐시 | 준비 전용 속성입니다. 요청이 브라우저의 HTTP 캐시와 상호 작용하는 방식을 제어하는 요청의 캐시 모드를 포함합니다. 허용되는 값:
데이터 유형: 문자열 |
|
| 자격 증명 | 읽기 전용입니다. 자격 증명 옵션의 Request() 생성자에 지정된 값을 반영합니다. 자격 증명은 쿠키, TLS 클라이언트 인증서 또는 사용자 이름과 암호가 포함된 인증 헤더입니다. 허용되는 값:
데이터 유형: 문자열 |
|
| 대상 | 읽기 전용입니다. 요청되는 콘텐츠의 유형을 설명하는 문자열을 반환합니다. 허용되는 값:
데이터 유형: 문자열 |
|
| 헤더 | 읽기 전용입니다. 요청과 연결된 헤더 개체입니다. 데이터 유형: 헤더 객체 |
|
| 무결성 | 읽기 전용입니다. 요청의 하위 자원 무결성 값입니다. 값: 요청을 생성할 때 인수로 options.integrity 전달된 값입니다. 무결성이 지정되지 않은 경우 속성은 |
|
| isHistoryNavigation | 읽기 전용입니다. 요청이 이력 탐색인지 여부를 나타내는 부울입니다. 허용되는 값:
데이터 유형: 부울 |
|
| 연결 유지 | 읽기 전용입니다. 요청의 연결 유지 설정(true 또는 false)입니다. 무결성 값이 요청에 전달되지 않은 경우 빈 문자열을 반환합니다. 허용되는 값:
데이터 유형: 부울 |
|
| 방법 | 읽기 전용입니다. 요청 방법(GET, POST 등)데이터 유형: 문자열 |
|
| 모드 | 읽기 전용입니다. 요청의 모드입니다. 교차 원본 요청이 유효한 응답으로 이어지는지 여부와 응답의 어떤 속성을 읽을 수 있는지 결정하는 데 사용됩니다. 허용되는 값:
요청은 다양한 방법으로 시작될 수 있으며 요청 모드는 시작된 특정 방법에 따라 다릅니다. 예를 들어 Request() 생성자를 사용하여 Request 개체를 만들면 해당 Request에 대한 mode 속성 값이 cors로 설정됩니다. 그러나 Request() 이외의 방법으로 생성된 요청의 경우 생성자, no-cors는 일반적으로 모드로 사용됩니다. 예를 들어 요청이 태그에서 시작되는 포함된 리소스의 경우 CrossOrigin 특성이 없는 한 대부분의 경우 요청은 no-CORS 모드(즉, OR) <link> 를 사용하여 이루어집니다 <script> elements (except when used with modules), or <img>, <audio>,<video>, <object>, <embed>, or <iframe> elements. 데이터 유형: 문자열 |
|
| redirect | 읽기 전용입니다. 리디렉션을 처리하는 방법에 대한 모드입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 문자열 기본값: 팔로우 |
|
| 참조자 | 읽기 전용입니다. 요청의 참조자(예: 클라이언트, 참조자 없음 또는 URL)입니다. no-referrer 값은 빈 문자열을 반환합니다.데이터 유형: 문자열 |
|
| 리퍼러정책 | 읽기 전용입니다. 요청과 함께 Referrer 헤더에 전송되는 레퍼러 정보를 제어하는 레퍼러 정책입니다. 데이터 유형: 문자열 |
|
| 신호 | 읽기 전용입니다. AbortSignal을 요청과 연결합니다. 데이터 유형: 문자열 |
|
| URL | 읽기 전용입니다. 요청의 URL입니다. 데이터 유형: 문자열 |
|
요청 가져오기 - Request()
새 요청 객체를 작성합니다. 선택적으로 URL 또는 객체 자원에서 Request 객체를 생성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 입력 | 문자열 또는 객체 | 옵션입니다. 검색할 자원입니다. 유효한 값은 다음과 같습니다.
|
| 옵션 | 객체 | 옵션입니다. RequestInit 가져오기 - 범위가 지정됨, 전역 요청에 적용할 사용자 지정 설정을 포함하는 객체입니다. 기존 요청에서 새 요청을 생성하는 경우 새 요청에 설정된 옵션이 원래 요청의 해당 옵션을 재정의합니다. 기본값: 모든 속성의 기본값을 반환합니다. |
다음 예제에서는 Request() 생성자를 사용하여 새 Request 개체를 만드는 방법을 보여 줍니다.
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
다음 예제에서는 input 매개 변수를 사용하여 URL 또는 개체를 검색하는 새 Request 개체를 만드는 방법을 보여 줍니다.
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
fetch(myRequest)
.then((response) => response.blob())
.then((response) => {
var objectURL = URL.createObjectURL(response);
myImage.src = objectURL;
});
다음 예제에서는 개체 리터럴을 사용하여 헤더 옵션이 있는 새 Request 개체를 만드는 방법을 보여 줍니다.
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
var options = {
headers: {
"Cache-Control": "max-age=60480",
},
};
요청 가져오기 - arrayBuffer()
요청 본문을 읽고 arrayBuffer로 해결되는 promise로 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 약속 | arrayBuffer로 해결되는 약속입니다. |
다음은 arrayBuffer() 메서드를 사용하여 새로운 요청을 생성하는 방법입니다.
var myArray = new Uint8Array(10);
var request = new Request("/myEndpoint", {
method: "POST",
body: myArray,
});
request.arrayBuffer().then((buffer) => {
// perform an action with the buffer sent in the request
});
가져오기 요청 - blob()
요청 본문을 읽고 Blob으로 해결되는 promise로 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | Blob으로 해결되는 promise입니다. |
다음 예제에서는 blob() 메서드를 사용하여 요청을 구성하는 방법을 보여 줍니다.
var obj = { hello: "world" };
var myBlob = new Blob([JSON.stringify(obj, null, 2)], {
type: "application/json",
});
var request = new Request("/myEndpoint", {
method: "POST",
body: myBlob,
});
request.blob().then((myBlob) => {
// do something with the blob sent in the request
});
요청 가져오기 - bytes()
요청 본문을 읽고 Uint8Array로 해결되는 promise로 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | Uint8Array로 해결되는 promise입니다. |
다음은 bytes() 메서드를 사용하여 새 요청을 만드는 방법을 보여줍니다.
var myArray = new Uint8Array(10);
var request = new Request("/myEndpoint", {
method: "POST",
body: myArray,
});
request.bytes().then((buffer) => {
// do something with the buffer sent in the request
});
요청 가져오기 - clone()
현재 Request 객체의 복사본을 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 요청 | clone()이 호출된 요청의 정확한 복사본인 Request 객체입니다. clone()은 요청 본문이 이미 사용된 경우 오류를 발생시킵니다. 요청을 수정하려면 생성자를 요청 가져오기 - Request() 사용합니다. |
다음 예제에서는 request() 를 사용하여 새 요청을 만든 다음 clone()을 사용하여 복사하는 방법을 보여 줍니다.
var myRequest = new Request("flowers.jpg");
var newRequest = myRequest.clone(); // a copy of the request is now stored in newRequest
요청 가져오기 - formData()
요청 본문을 읽고 FormData 객체로 해결되는 promise로 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 | FormData 객체로 해결되는 Promise입니다. |
다음 예제에서는 request() 를 사용하여 새 요청을 만든 다음 formData() 메서드로 이를 해결하여 FormData 객체로 확인하는 방법을 보여 줍니다.
var formData = new FormData();
var fileField = document.querySelector('input[type="file"]');
formData.append("username", "abc123");
formData.append("avatar", fileField.files[0]);
var request = new Request("/myEndpoint", {
method: "POST",
body: formData,
});
request.formData().then((data) => {
// do something with the formdata sent in the request
});
요청 가져오기 - json()
요청 본문을 읽고, 컨텐츠를 JSON으로 구문 분석하고, 구문 분석된 결과로 해결되는 promise를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | JavaScript 객체로 확인되는 promise(비동기 작업 및 그 결과 값의 최종 완료 또는 실패)입니다. 이 객체는 JSON으로 표현할 수 있는 모든 것(객체, 배열, 문자열, 숫자 등)이 될 수 있습니다. |
다음 예제에서는 request( )를 사용한 다음 json() 을 사용하여 새 요청을 생성하여 요청을 구문 분석하고 JSON 객체로 반환하는 방법을 보여줍니다.
var obj = { hello: "world" };
var request = new Request("/myEndpoint", {
method: "POST",
body: JSON.stringify(obj),
});
request.json().then((data) => {
// process the data sent in the request
});
요청 가져오기 - text()
요청 본문을 읽고 UTF-8을 사용하여 디코딩된 문자열로 해결되는 promise로 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 | UTF-8 형식의 문자열로 해결되는 약속입니다. |
이 예제에서는 text()를 호출하는 방법을 보여 줍니다.
var text = "Hello world";
var request = new Request("/myEndpoint", {
method: "POST",
body: text,
});
request.text().then((text) => {
// process the data sent in the request
});