# Responder com outro site

Responda a uma requisição recebida com conteúdo buscado de outro site. Use esse padrão para uma substituição temporária ou para servir a resposta de outro site sem emitir um redirecionamento HTTP que altere a URL no navegador.

```js
  addEventListener("fetch", event => {
    return event.respondWith(
      fetch("https://www.azion.com/pt-br/")
    )
  })
```

## Como funciona

A função escuta o evento `fetch` com `addEventListener`. Em vez de construir um `Response` local, ela chama `fetch()` para requisitar um recurso de outro site e passa a promise resultante diretamente para `event.respondWith()`, que aceita tanto uma promise quanto um `Response`. A função aguarda a resposta upstream e a repassa ao cliente como resposta à requisição original.

A substituição acontece dentro da função, então a barra de endereços do visitante mantém a URL original. O `fetch()` de saída conta para o limite de sub-requisições da invocação, e o status e os headers do site upstream são os que o cliente recebe.

A resposta repassada pode ser guardada em vez de buscada de novo na próxima requisição. A [Cache API](/pt-br/documentacao/devtools/runtime/api-reference/cache/) a escreve com `cache.put(request, fetchResponse.clone())`, e entregar essa chamada a `ctx.waitUntil()` mantém a escrita fora do caminho da resposta.

## Recursos relacionados

- [Exemplos em JavaScript](/pt-br/documentacao/plataforma/functions/javascript-exemplos.md): Consulte os demais trechos de código desta coleção.
- [FetchEvent](/pt-br/documentacao/devtools/runtime/api-reference/fetch-event.md): Leia a referência do evento que este handler escuta, incluindo `respondWith()`.
- [Fetch API](/pt-br/documentacao/devtools/runtime/api-reference/fetch.md): Verifique o que `fetch()` aceita e retorna dentro de uma função.
- [Limites](/pt-br/documentacao/plataforma/functions/limites.md): Revise o limite de sub-requisições e os demais limites por invocação.
- [Como Functions funciona](/pt-br/documentacao/plataforma/functions/como-funciona.md#a-funcao-a-instancia-e-a-regra): A instância e a regra de que este código precisa antes de receber tráfego.
- [Response](/pt-br/documentacao/devtools/runtime/api-reference/response.md#construtor): Todos os parâmetros do objeto de resposta que esta função repassa.
