Buscar RequestInit - com escopo, global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 8 min. de leitura
  • A API RequestInit fornece opções para configurar uma solicitação de busca.

    Você pode passar um objeto RequestInit para o construtor Request() ou diretamente para a chamada de função fetch(). Você também pode criar uma solicitação com uma chamada RequestInit() e passar a solicitação para uma chamada fetch() junto com outro RequestInit(). Se você fizer isso quando a mesma opção estiver definida em ambos os locais, o valor passado diretamente para fetch() será usado.

    Esta API faz parte de um conjunto de APIs de busca, que fornecem várias ações para buscar recursos de sites externos. A coleção completa da API de busca inclui:

    Para oferecer suporte a ações de busca, a propriedade do sistema, glide.hosts.allowlist, permite controles sobre quais hosts um método de busca pode acessar. Aplica-se a APIs HTTP como RestMessageV2 e as mencionadas acima. Para obter mais informações sobre glide.hosts.allowlist, consulte Available system properties.

    Buscar RequestInit - RequestInit

    Defina opções para configurar uma solicitação de busca. Você pode passar um objeto RequestInit para o construtor Request() ou diretamente para a chamada de função fetch().

    Propriedades RequestInit

    A API RequestInit oferece suporte a várias propriedades opcionais que podem ser usadas para configurar o comportamento da solicitação HTTP. Suas propriedades incluem método (método HTTP), cabeçalhos (cabeçalhos de solicitação), corpo (dados a serem enviados), modo (modo CORS), credenciais (detalhes de autenticação), cache (comportamento de cache) e outras como redirecionamento, referenciadore integridade. Essas opções permitem ajustar o comportamento da solicitação para vários casos de uso. Para ler explicações mais detalhadas sobre cada propriedade, consulte https://developer.mozilla.org/en-US/docs/Web/API/RequestInit.

    Tabela 1. Propriedades RequestInit
    Nome da propriedade Descrição
    atribuiçãoRelatório Opcional. Indica que você deseja que a resposta da solicitação registre uma origem de atribuição baseada em JavaScript ou um gatilho de atribuição.
    attributionReporting é um objeto que contém as seguintes propriedades:
    • eventSourceEligible: booliano. Se definido como verdadeiro, a resposta da solicitação estará qualificada para registrar uma origem de atribuição. Se definido como falso, não estará qualificado para registro como uma origem de atribuição.
    • gatilhoQualificado: booliano. Se definido como verdadeiro, a resposta da solicitação estará qualificada para registrar um gatilho de atribuição. Se definido como falso, não estará qualificado para registro como um gatilho de atribuição.

    Tipo de dados: objeto

    corpo Opcional. O corpo da solicitação contém conteúdo a ser enviado ao servidor, por exemplo, em uma solicitação POST ou PUT.
    Tipos aceitos:
    • ArrayBuffer
    • uma cadeia de caracteres
    • Blob
    • Exibição de dados
    • Arquivo
    • FormData
    • ReadableStream
    • TypedArray
    • URLSearchParams
    navegaçãoTópicos Opcional. Sinalizador que indica se os tópicos selecionados para o usuário atual devem ser enviados em um cabeçalho Sec-Browsing-Topics com a solicitação associada.
    Valores aceitos:
    • verdadeiro: os tópicos selecionados para o usuário atual devem ser enviados em um cabeçalho Sec-Browsing-Topics
    • falso: os tópicos selecionados para o usuário atual não devem ser enviados em um cabeçalho Sec-Browsing-Topics.

    Tipo de dados: booliano

    cache Opcional. O modo de cache a ser usado para a solicitação.
    Valores aceitos:
    • padrão: o navegador procura no cache HTTP uma resposta que corresponda à solicitação.
    • force-cache: o navegador procura no cache HTTP uma resposta que corresponda à solicitação.
    • no-cache: o navegador procura no cache HTTP uma resposta que corresponda à solicitação.
    • no-store: o navegador busca o recurso do servidor remoto sem primeiro consultar o cache e não atualizará o cache com o recurso baixado.
    • somente se em cache: o navegador procura no cache HTTP uma resposta que corresponda à solicitação.
    • recarregar: o navegador busca o recurso do servidor remoto sem primeiro consultar o cache, mas atualiza o cache com o recurso baixado.

    O modo somente se em cache só poderá ser usado se o modo da solicitação for same-origin. Os redirecionamentos em cache serão seguidos se a propriedade de redirecionamento da solicitação for seguir e os redirecionamentos não violarem o modo de mesma origem.

    Tipo de dados: cadeia de caracteres

    credenciais Opcional. Controla se o navegador envia ou não credenciais com a solicitação, bem como se os cabeçalhos de resposta Set-Cookie são respeitados. As credenciais são cookies, certificados de cliente TLS ou cabeçalhos de autenticação que contêm um nome de usuário e senha.
    Valores aceitos:
    • include: sempre inclua credenciais, mesmo para solicitações entre origens.
      Nota:
      A inclusão de credenciais em solicitações entre origens pode tornar um site vulnerável a ataques de CSRF. Portanto, mesmo que as credenciais estejam definidas para incluir, o servidor também deve concordar com sua inclusão, incluindo Access-Control-Allow-Credentials em sua resposta. Além disso, nesta situação, o servidor deve especificar explicitamente a origem do cliente no cabeçalho de resposta Access-Control-Allow-Origin (ou seja, *não é permitido).
    • omitir: nunca envie credenciais na solicitação ou inclua credenciais na resposta.
    • same-origin: envia e inclui credenciais somente para solicitações de same-origin.

    Padrão: same-origin

    Tipo de dados: cadeia de caracteres

    cabeçalhos Opcional. Todos os cabeçalhos a serem adicionados à sua solicitação, contidos em um objeto Cabeçalhos ou um objeto literal cujas chaves são os nomes dos cabeçalhos e cujos valores são os valores do cabeçalho.

    Muitos cabeçalhos são definidos automaticamente pelo navegador e não podem ser definidos por um script; eles são chamados de nomes de cabeçalho proibidos.

    Se a opção de modo estiver definida como no-cors, você só poderá definir cabeçalhos de solicitação CORS-safelisted.

    Tipo de dados: cadeia de caracteres

    integridade Opcional. Contém o valor de integridade de sub-recurso da solicitação. Isso é verificado quando o recurso é obtido. O navegador calcula o hash do recurso obtido usando o algoritmo especificado e, se o resultado não corresponder ao valor especificado, o navegador rejeitará a solicitação de busca com um erro de rede.
    O formato desta opção é<hash-algo> - <hash-source> em que:
    • <hash-algo>: é um dos seguintes valores: sha256, sha384 ou sha512.
    • <hash-source>: é a codificação Base64 do resultado do hash do recurso com o algoritmo de hash especificado.

    O padrão é uma cadeia de caracteres vazia.

    Tipo de dados: cadeia de caracteres

    manter ativo Opcional. Sinalizador que indica se a solicitação associada deve ser anulada se a página que a iniciou for descarregada antes que a solicitação seja concluída.

    O tamanho do corpo das solicitações de manutenção de atividade é limitado a 64 kibibytes.

    Valores válidos:
    • verdadeiro: o navegador não anula a solicitação associada.
    • falso: anula a solicitação associada.

    Tipo de dados: booliano

    Padrão: falso

    method Opcional. O método request.

    Tipo de dados: cadeia de caracteres

    Padrão: GET

    modo Opcional. Define o comportamento entre origens da solicitação.
    Valores válidos:
    • same-origin: não permite solicitações entre origens. Se uma solicitação de mesma origem for enviada para uma origem diferente, o resultado será um erro de rede.
    • cors: se a solicitação for de origem cruzada, ela usará o mecanismo de Compartilhamento de recursos de origem cruzada (CORS). Somente cabeçalhos de resposta na lista de segurança CORS são expostos na resposta.
    • no-cors: desabilita o CORS para solicitações entre origens. Esta opção vem com as seguintes restrições:
      • O método só pode ser HEAD, GET ou POST.
      • Os cabeçalhos só podem ser cabeçalhos de solicitação na lista de segurança CORS, com a restrição adicional de que o cabeçalho Intervalo também não é permitido. Isso também se aplica a todos os cabeçalhos adicionados por trabalhadores de serviço.
      • A resposta é opaca, o que significa que seus cabeçalhos e corpo não estão disponíveis para JavaScript e seu código de status é sempre 0.
    • navegar: usado somente pela navegação HTML. Uma solicitação de navegação é criada somente durante a navegação entre documentos.

    Tipo de dados: cadeia de caracteres

    Padrão: cors

    prioridade Opcional. Especifica a prioridade da solicitação de busca em relação a outras solicitações do mesmo tipo.
    Valores válidos:
    • automático: nenhuma preferência do usuário para a prioridade de busca. Ele será usado se nenhum valor estiver definido ou se um valor inválido estiver definido.
    • alta: uma solicitação de busca de alta prioridade em relação a outras solicitações do mesmo tipo.
    • baixa: uma solicitação de busca de baixa prioridade em relação a outras solicitações do mesmo tipo.

    Tipo de dados: cadeia de caracteres

    Padrão: automático

    redirect Opcional. Determina o comportamento do navegador caso o servidor responda com um status de redirecionamento.
    Valores aceitos:
    • seguir: seguir redirecionamentos automaticamente.
    • erro: rejeitar a promessa com um erro de rede quando um status de redirecionamento for retornado.
    • manual: retorna uma resposta com quase todos os campos filtrados para permitir que um trabalhador de serviço armazene a resposta e a reproduza posteriormente.

    Tipo de dados: cadeia de caracteres

    Padrão: seguir

    referenciador Opcional. Uma cadeia de caracteres que especifica o valor a ser usado para o cabeçalho Referenciador da solicitação.
    Valores e tipos de dados aceitos:
    • sobre: cliente: defina o cabeçalho Referenciador com o valor padrão do contexto da solicitação (por exemplo, o URL da página que fez a solicitação).
    • cadeia de caracteres vazia: omita o cabeçalho Referenciador.
    • URL relativo ou absoluto da mesma origem: defina o cabeçalho do referenciador para o valor fornecido. Os URLs relativos são resolvidos em relação ao URL da página que fez a solicitação.

    Padrão: sobre:cliente

    política de referência Opcional. Uma cadeia de caracteres que define uma política para o cabeçalho Referenciador. A sintaxe e a semântica desta opção são exatamente as mesmas do cabeçalho Referrer-Policy.

    Tipo de dados: cadeia de caracteres

    sinal Opcional. Um AbortSignal. Se esta opção estiver definida, a solicitação poderá ser cancelada chamando abort() no AbortControllercorrespondente.

    Tipo de dados: cadeia de caracteres

    Tabela 2. Retornos
    Tipo Descrição
    Nenhum(a)

    Passar opções para fetch()

    Este exemplo mostra como passar as opções de método, corpo e cabeçalhos diretamente para o método fetch() :

    async function post() {
      const response = await fetch("https://example.org/post", {
        method: "POST",
        body: JSON.stringify({ username: "example" }),
        headers: {
          "Content-Type": "application/json",
        },
      });
    
      console.log(response.status);
    }

    Passar opções para o construtor Request()

    Este exemplo mostra como criar uma solicitação e passar as opções de método, corpo e cabeçalhos para o construtor e passar a solicitação para fetch():

    async function post() {
      const request = new Request("https://example.org/post", {
        method: "POST",
        body: JSON.stringify({ username: "example" }),
        headers: {
          "Content-Type": "application/json",
        },
      });
    
      const response = await fetch(request);
    
      console.log(response.status);
    }

    Passar opções para Request() e fetch()

    Este exemplo mostra como criar um Request() e passar as opções de método, corpo e cabeçalhos para o construtor. O script passa a solicitação para fetch() junto com as opções de corpo e referenciador.

    Nesse caso, a solicitação será enviada com as seguintes opções:
    • método: "POST"
    • cabeçalhos: {"Content-Type": "application/json"}
    • corpo: '{"username":"example2"}'
    • referenciador: ""
    async function post() {
      const request = new Request("https://example.org/post", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({ username: "example1" }),
      });
    
      const response = await fetch(request, {
        body: JSON.stringify({ username: "example2" }),
        referrer: "",
      });
    
      console.log(response.status);
    }