W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在Body接口中,該Request()構(gòu)造函數(shù)用來創(chuàng)建一個新的Request對象。
var myRequest = new Request(input,init);
USVString
包含要獲取資源的直接URL。Request
對象,有效地創(chuàng)建一個副本。請注意以下操作更新以保持安全性,同時使構(gòu)造函數(shù)不太可能拋出異常:
Request.referrer
除去。navigate
的Request.mode
,該mode
值被轉(zhuǎn)換為same-origin
。method
:請求方法,例如GET
,POST
。headers
:你想添加到你的請求的任何頭文件,包含在一個Headers
對象或帶有ByteString
值的對象文本中。body
:您要添加到您的請求的任何body:這可以是一個Blob
,BufferSource
,FormData
,URLSearchParams
,USVString
或ReadableStream
對象。請注意,使用GET
或者HEAD
方法的請求不能有一個主體。mode
:您要使用該請求的模式,例如cors
,no-cors
,same-origin
或navigate
,默認(rèn)是cors
。在Chrome中,默認(rèn)情況下是no-cors
在Chrome 47之前,same-origin
從Chrome 47開始。credentials
:請求憑據(jù)要使用的要求:omit
,same-origin
或include
。默認(rèn)是omit
。在Chrome中,默認(rèn)情況下是same-origin
在Chrome 47之前,從Chrome 47開始默認(rèn)為include
。cache
:您想要用于請求的緩存模式。redirect
:要使用的Redirect方式:follow
,error
或manual
。在Chrome中,默認(rèn)情況下是manual
在Chrome 47之前,從Chrome 47開始默認(rèn)為follow
。referrer
:USVString
指定no-referrer
,client
或URL;默認(rèn)是client
。integrity
:包含請求的子資源完整性值(例如,sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=
)。類型 | 描述 |
---|---|
TypeError
|
自Firefox 43以來,如果URL具有證書(如http:// user:password@example.com),Request() 將會引發(fā)TypeError。
|
在我們的Fetch Request示例中(請參閱“Fetch Request live”),我們使用構(gòu)造函數(shù)創(chuàng)建一個新的Request對象,然后使用GlobalFetch.fetch調(diào)用來獲取它。由于我們正在獲取圖像,因此我們在響應(yīng)上運行Body.blob以提供適當(dāng)?shù)腗IME類型,以便正確處理,然后創(chuàng)建一個Object URL并將其顯示在<img>元素中。
var myImage = document.querySelector('img');
var myRequest = new Request('flowers.jpg');
fetch(myRequest).then(function(response) {
return response.blob();
}).then(function(response) {
var objectURL = URL.createObjectURL(response);
myImage.src = objectURL;
});
在我們的帶有init例子的Fetch Request中(請參閱Fetch Request init live),我們做同樣的事情,只不過我們在調(diào)用fetch()時傳入init對象:
var myImage = document.querySelector('img');
var myHeaders = new Headers();
myHeaders.append('Content-Type', 'image/jpeg');
var myInit = { method: 'GET',
headers: myHeaders,
mode: 'cors',
cache: 'default' };
var myRequest = new Request('flowers.jpg',myInit);
fetch(myRequest).then(function(response) {
...
});
請注意,您也可以將init對象傳遞給fetch調(diào)用以獲得相同的效果,例如:
fetch(myRequest,myInit).then(function(response) {
...
});
您還可以在init中使用對象文本作為headers。
var myInit = { method: 'GET',
headers: {
'Content-Type': 'image/jpeg'
},
mode: 'cors',
cache: 'default' };
var myRequest = new Request('flowers.jpg', myInit);
您也可以將一個Request對象傳遞給Request()構(gòu)造函數(shù)來創(chuàng)建請求的副本(這與調(diào)用clone()方法類似)。
var copy = new Request(myRequest);
注意:這最后一個用法可能只在ServiceWorkers中有用。
規(guī)范 | 狀態(tài) | 注釋 |
---|---|---|
Fetch
在該說明書中“Request()”的定義。
|
Living Standard
|
Feature
|
Chrome
|
Firefox(Gecko)
|
Edge
|
Opera
|
Safari(WebKit) |
---|---|---|---|---|---|
基本的支持 |
支持:42.0 [1]
|
支持:39[2] | 支持:15 |
支持:29 [3] |
支持:10.1 |
body 可以是 ReadableStream
|
支持:43.0 | 不支持[4] | 支持:15 | ? | 支持:10.1 |
navigate 模式 |
支持:49.0 | 支持:46 | 支持:15 | (是) | 支持:10.1 |
referrer init選項 |
? | 支持:47 | 支持:15 | (是) | 支持:10.1 |
從現(xiàn)有Request對象創(chuàng)建構(gòu)造函數(shù)時,跨源referrer 剝離和navigate 模式被轉(zhuǎn)換為same-origin 。 |
(是) | 支持:54 | 支持:15 | (是) | 支持:10.1 |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Edge | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
基本的支持 | 不支持 | 支持:42 [1] | (是) | 支持:15 | 不支持
|
支持:10.3 | 支持:42.0 [1] |
body 可以是ReadableStream
|
不支持
|
支持:43.0 | 不支持[4] | 支持:15 | ? | 支持:10.3 | 支持:43.0 |
navigate 模式 |
不支持
|
不支持 | (是) | 支持:15 | 不支持
|
支持:10.3 | 支持:49.0 |
referrer init 選項 |
不支持
|
(是) | (是) | 支持:15 | ? | 支持:10.3 | (是) |
跨源referrer 剝離和 navigate 模式被轉(zhuǎn)換為 same-origin ,當(dāng)從現(xiàn)有的Request 對象創(chuàng)建構(gòu)造函數(shù)。 |
不支持
|
(是) | (是) | 支持:15 | ? | 支持:10.3 | (是) |
[1] 在Chrome 47中初始化參數(shù)的某些默認(rèn)值已更改。有關(guān)詳細(xì)信息,請參閱“屬性(Properties)”部分。
[2]在版本34的首選項后。
[3]在版本28的首選項后。
[4]可讀流當(dāng)前在Firefox中啟用,但隱藏在dom.streams.enabled和javascript.options.streamsprefs 后面。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: