跳到主要內容

HTTP 要求 (fetch)

使用 Fetch API,您可以在 Deno Deploy 中進行傳出 HTTP 要求。它是一種網路標準,並具有下列介面

  • fetch() - 允許您進行傳出 HTTP 要求的方法
  • Request - 代表 fetch() 的請求資源
  • Response - 代表 fetch() 的回應資源
  • Headers - 代表請求和回應的 HTTP 標頭。

此頁面顯示 fetch() 方法的使用方式。您可以按一下上方的其他介面以深入了解它們。

Fetch 也支援從檔案 URL 擷取以取得靜態檔案。如需有關靜態檔案的更多資訊,請參閱 檔案系統 API 文件

fetch()

fetch() 方法會對提供的資源發起網路請求,並在回應可用後傳回一個承諾。

function fetch(
resource: Request | string,
init?: RequestInit,
): Promise<Response>;

參數

名稱類型選用說明
資源請求
USVString
資源可以是請求物件或 URL 字串。
initRequestInitinit 物件讓您套用選用參數至請求。

fetch() 的傳回類型是一個承諾,會解析為 Response

範例

下列 Deno Deploy 腳本會對每個傳入請求針對 GitHub API 提出 fetch() 請求,然後從處理函式傳回該回應。

async function handler(req: Request): Promise<Response> {
const resp = await fetch("https://api.github.com/users/denoland", {
// The init object here has an headers object containing a
// header that indicates what type of response we accept.
// We're not specifying the method field since by default
// fetch makes a GET request.
headers: {
accept: "application/json",
},
});
return new Response(resp.body, {
status: resp.status,
headers: {
"content-type": "application/json",
},
});
}

Deno.serve(handler);