Body執(zhí)行者:Response

2018-03-05 11:36 更新

Response

Fetch API 的 Response 接口用于表示對(duì)請(qǐng)求的響應(yīng)。

您可以使用 Response.Response() 構(gòu)造函數(shù)創(chuàng)建一個(gè)新的 Response 對(duì)象,但您更可能遇到由于另一個(gè) API 操作(例如一個(gè) service worker:Fetchevent.respondWith或簡單的 GlobalFetch.fetch() 操作)而返回的 Response 對(duì)象。

Response構(gòu)造函數(shù)

Response()
創(chuàng)建一個(gè)新的Response對(duì)象。

Response屬性

Response.headers 只讀
包含與響應(yīng)關(guān)聯(lián)的Headers對(duì)象。
Response.ok 只讀
包含一個(gè)布爾值,說明響應(yīng)是否成功(狀態(tài)在200-299范圍內(nèi))。
Response.redirected 只讀
指示響應(yīng)是否是重定向的結(jié)果;也就是說,它的 URL 列表有多個(gè)條目。
Response.status 只讀
包含響應(yīng)的狀態(tài)代碼(例如,200表示成功)。
Response.statusText 只讀
包含與狀態(tài)碼相對(duì)應(yīng)的狀態(tài)消息(例如,OK用于 200)。
Response.type 只讀
包含響應(yīng)的類型(例如basic,cors)。
Response.url 只讀
包含響應(yīng)的URL。
Response.useFinalURL
包含一個(gè)布爾值,說明這是否是響應(yīng)的最終URL。

使用 Response 實(shí)現(xiàn) Body,所以它也有以下可用的屬性:

Body.body 只讀
一個(gè)簡單的 getter,用于暴露ReadableStream正文內(nèi)容。
Body.bodyUsed 只讀
存儲(chǔ)一個(gè)Boolean聲明該身體是否已用于響應(yīng)中的聲明。

Response方法

Response.clone()
創(chuàng)建一個(gè)Response對(duì)象的克隆。
Response.error()
返回Response與網(wǎng)絡(luò)錯(cuò)誤關(guān)聯(lián)的新對(duì)象。
Response.redirect()
使用其他網(wǎng)址創(chuàng)建新的回復(fù)。

使用 Response 實(shí)現(xiàn) Body,所以它也有以下方法可用:

Body.arrayBuffer()
采取Response流并閱讀完成。它返回一個(gè)以“ArrayBuffer” 處理的 promise。
Body.blob()
采取Response流并閱讀完成。它返回一個(gè)以Blob處理的 promise。
Body.formData()
采取Response流并閱讀完成。它返回一個(gè)用FormData對(duì)象解決的 promise。
Body.json()
采取Response流并閱讀完成。它返回一個(gè)承諾,將解析正文文本的結(jié)果解析為JSON
Body.text()
采取Response流并閱讀完成。它返回一個(gè)用USVString(文本)來解決的 promise。

Response實(shí)例

在我們的基本的 fetch 示例中,我們使用一個(gè)簡單的 fetch() 調(diào)用來獲取圖像并將其顯示在 <img> 標(biāo)簽中。該 fetch() 調(diào)用返回一個(gè) promise,它通過與資源獲取操作關(guān)聯(lián)的 Response 對(duì)象來解決。你會(huì)注意到,因?yàn)槲覀冋谡?qǐng)求一個(gè)圖像,我們需要運(yùn)行 Body.blob(Response 實(shí)現(xiàn) body)來為響應(yīng)提供正確的 MIME類型。

var myImage = document.querySelector('.my-image');
fetch('flowers.jpg').then(function(response) {
  return response.blob();
}).then(function(blob) {
  var objectURL = URL.createObjectURL(blob);
  myImage.src = objectURL;
});

您也可以使用 Response.Response() 構(gòu)造函數(shù)來創(chuàng)建自己的自定義 Response 對(duì)象:

var myResponse = new Response();

規(guī)范

規(guī)范 狀態(tài) 注釋
Fetch
該規(guī)范中'Respone'的定義。
Living Standard
初始定義

瀏覽器兼容性

電腦端 移動(dòng)端
Chrome
Edge
Firefox(Gecko)
Internet Explorer
Opera
Safari(WebKit)
Android Webview
Chrome for Android
Edge Mobile Firefox Mobile (Gecko)               Opera Mobile
iOS Safari
基本支持 支持:42 支持 支持:39 不支持 支持:29 支持:10.1 支持:42 支持:42 支持 支持 支持:29 支持:10.1
Response() 構(gòu)造函數(shù) 支持:42 支持:15 支持:39 不支持 支持:29 支持:10.1 支持:42 支持:42 支持 支持 支持:29 支持:10.3
headers 支持:42 支持
支持:39 不支持
支持:29 不支持 不支持 不支持
支持 不支持 不支持 不支持
ok
支持:42 支持 支持:39 不支持
支持:29 不支持 不支持 不支持 不支持 不支持 不支持 不支持
redirected
支持:60 支持
支持:49 不支持
支持:47 不支持 支持:60 支持:60 支持 支持:49 支持:47 不支持
status
支持:42 支持
支持:39 不支持
支持:29 不支持 不支持 不支持 支持 不支持 不支持 不支持
statusText
支持:42 支持
支持:39 不支持
支持:29 不支持 不支持 不支持 支持 不支持 不支持 不支持
type
支持:42
支持
支持:39 不支持
支持:29 不支持 不支持 不支持 支持 不支持 不支持 不支持
url
支持:42 支持
支持:39 不支持
支持:29 不支持 不支持 不支持
支持 不支持
不支持
不支持
useFinalURL
支持:42 支持
支持:39 不支持
支持:29 不支持 不支持
不支持
支持 支持:39 不支持
不支持
clone
支持:42 支持
支持:39 不支持
支持:29 不支持 不支持
不支持
支持 不支持
不支持
不支持
error
支持 ? 支持
不支持
支持 不支持
不支持
不支持
? 不支持
不支持
不支持
redirect
支持 ? 支持
不支持
支持 不支持 不支持
不支持
? 不支持
不支持
不支持 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)