Fetch

最終更新日:2024-08-14 19:50:31

The fetch() method provides an interface for asynchronously fetching resources via HTTP requests within your Edge Cloud Apps Functions.

Note: Asynchronous tasks, such as fetch(), must be executed within a handler. If you attempt to call fetch() within the global scope, your function will throw an error.

Syntax

fetch(resource, options); // options is optional

The fetch() function returns a Promise object that eventually resolves to a Response object.

Parameters

  • resource: Request | string | URL

    The resource to be fetched. This can be a Request object, a string, or a URL object.

  • options (Optional): object

    An object that defines the content and behavior of the request. Optional properties include:

    • method: The request method, such as GET, POST, PUT, DELETE, etc.
    • headers: The request headers, an object containing key-value pairs of headers.
    • body: The request body, which can be a string, FormData, Blob, ArrayBuffer, etc.
    • mode: The request mode, such as cors, no-cors, same-origin, etc.
    • credentials: The credentials mode, such as include, same-origin, omit, etc.
    • cache: The cache mode, such as default, no-cache, reload, force-cache, only-if-cached, etc.
    • redirect: The redirect mode, such as follow, error, manual, etc.
    • referrer: The referrer of the request, which can be a string or a URL object.
    • referrerPolicy: The referrer policy of the request, such as no-referrer, no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url, etc.
    • integrity: The integrity metadata of the request, used to verify the integrity of the response.
    • keepalive: A boolean value indicating whether to keep the connection alive.
    • signal: An AbortSignal object used to abort the request.
    • ignoreHttpsCert: A boolean value indicating whether to ignore HTTPS certificate verification errors. Defaults to false.
    • cdnCache: An object to configure CDN caching behavior. Optional properties include:
      • ignoreCache: A boolean value indicating whether to ignore CDN caching. Defaults to false.
      • maxAge: A number representing the maximum age (in seconds) for the cached object to be considered valid.
      • sMaxAge: A number representing the maximum age (in seconds) for the shared cached object to be considered valid. This only applies to the public cache.

Code Example

The following code snippet shows how to make a POST request using the fetch() method, and how to set options for ignoring HTTPS certificate errors and CDN caching behavior:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const init = {
    method: 'POST',
    headers: {
      'content-type': 'application/json;charset=UTF-8',
      'custom-header1': 'value1',
      'custom-header2': 'value2'
    },
    body: JSON.stringify({
      key1: 'value3',
      key2: 'value4'
    }),
    // Ignore HTTPS certificate errors
    ignoreHttpsCert: true,
    // Configure CDN caching behavior
    cdnCache: {
        ignoreCache: false,
        maxAge: 3600,
        sMaxAge: 1800
    }
  }
  // Make the request
  const response = await fetch('http://example.com', init)
  // Return the response to the client
  return response
}